- Введение в GNU/Linux
- Работа в графических средах (KDE, Gnome)
- Командная оболочка (bash)
- Практические работы по OpenOffice
- Основы программирования (Python)
- Обзор языков программирования
- Введение в Python
- Данные и переменные
- Логические выражения
- Условный оператор
- Множественное ветвление
- Цикл While
- Ввод данных
- Последовательности: строки
- Последовательности: списки
- Структуры данных: словари
- Цикл for
- Функции
- Локальные и глобальные переменные
- Задания по программированию
- Алгоритмы на Python
- Объектно-ориентированное программирование (Python)
- Программирование графического интерфейса (Tkinter)
- 2D анимация (Synfig)
- 3D моделирование (Blender)
- Blender Game Engine
Конспект урока
Курс: Основы программирования на Python Уровень: Программирование для начинающих 1. Программа. Язык программированияПрограмму можно представить как набор последовательных команд (алгоритм) для определенного объекта (исполнителя), который должен их выполнить для достижения той или иной цели. Например, условно запрограммировать можно человека, если составить ему инструкцию "как собрать компьютер", и он примется ее исполнять. Очевидно, что инструкция будет на естественном языке (русском, английском или др.). Однако, обычно принято программировать не людей, а вычислительные машины. Трудность заключается в том, что такие машина не в состоянии понять наш язык. Для "инструктирования" вычислительных машин разработаны и разрабатываются специальные языки, называемые языками программирования. Языки программирования характеризуются однозначностью при формировании фразы (в выражении нельзя менять слова местами), а также ограниченным набором слов-команд. Другими словами, языки программирования являются формальными. 2. Основные этапы развития языков программированияМашинный язык — это единственный способ взаимодействия с электронно-вычислительными машинами. Первые программы писались именно на нем, т. к. других средств «общения» человека и компьютера еще не было. Каждую команду машинного языка выполняет определенное электронное устройство. Данные и команды записываются в цифровом виде (например, в шестнадцатеричной или двоичной системах счисления). Понять программу на таком языке человеку очень сложно; к тому же даже небольшая программа будет состоять из множества строк кода. В довершении всего, у каждой вычислительной машины свой машинный язык; следовательно программа, написанная для одной ЭВМ, не будет работать на другой (придется писать снова). Людям, в отличие от машин, более понятны слова, чем наборы цифр. Стремление человека оперировать словами и не цифрами привело к появлению ассемблеров. Это языки, в которых вместо численного обозначения команд и областей памяти используются буквенные. Но тут сразу возникает проблема: машина не в состоянии понять набор букв. Необходим какой-нибудь «переводчик» на ее родной машинный язык. Так был придуман транслятор — специальная программа, преобразующая программный код с того или иного языка программирования в машинный код. Ассемблеры и сегодня находят применение, т.к. системные программы (обслуживающие работу аппаратного обеспечения), написанные на ассемблере могут работать быстрее, чем аналогичные программы, написанные на других языках программирования. После ассемблеров наступил рассвет языков так называемого высокого уровня. Для этих языков потребовалось разрабатывать более сложные трансляторы. Программные коды, написанные на языках высокого уровня, обладают логичной структурой. Это облегчает разработку программы и ее отладку. В отличие от ассемблеров, которые все еще остаются привязанными к своим типам машин, языки высоко уровня обладают переносимостью. Т.е., написав один раз программу, программист может выполнить ее на любой машине. Следующим крупным этапом в эволюции программирования было появление объектно-ориентированных языков (ООП). Их отличие от языков высокого уровня заключается в возможности отстранения от алгоритма выполнения программы. С помощью таких языков разработчик как бы оперирует виртуальными объектами. На сегодняшний день, реализация больших и сложных проектов осуществляется в основном с помощью ООП. 3. Разнообразия языков программированияРазнообразие языков весьма велико. Это может показаться странным: если написанную программу можно перенести на любую машину и выполнить там, то зачем придумывать такое множество языков? Однако все немного сложнее. Можно сказать, что нет идеального языка, каждый чем-то хорош, а в чем-то уступает другому инструменту. Многие программисты старались и стараются придумать свой язык обладающий теми или иными преимуществами. Можно лишь условно разделить языки по определенным критериям. Например, по типу решаемых задач (язык системного или прикладного назначения), по степени ориентации на решение узкого круга задач (проблемно-ориентированные или универсальные). 4. ТрансляцияРанее было сказано, что для перевода кода с одного языка программирования (например, высокого уровня) на другой (например, машинный язык) требуется специальная программа — транслятор. Механизм этого перевода весьма сложен, однако выделяют два основных способа трансляции — это компиляция программы или ее интерпретация. При компиляции исходный программный код сразу целиком переводится в машинный. Создается исполняемый файл, который уже никак не связан с исходным кодом. Выполнение исполняемого файла обеспечивается операционной системой самостоятельно. При интерпретации выполнение кода происходит построчно. Интерпретатор, выполняя программу, напрямую взаимодействует с операционной системой. Выполнение откомпилированной программы происходит быстрее, т.к. она представляет собой готовый машинный код. Однако на современных компьютерах снижение скорости выполнения при интерпретации обычно не заметна. |
|||
