Уровни языков программирования и эволюция языков
Лекция_7
Основы языков программирования
Программа – последовательность действий, выполняющих определенный алгоритм.
Программирование – это процесс написания программ при помощи языков программирования.
Алфавит – набор основных символов строчные и прописные буквы латинского и национального алфавитов. Большинство языков программирования, применяемых на персональных компьютерах, используют следующие символы клавиатуры:
1. строчные и прописные буквы латинского и национального алфавитов;
2. цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0;
3. знаки операций: + – * / = < : @ & .. ;
4. символ подчеркивания _ и пробела ;
5. ограничители и разделители: . , ' ( ) [ ] { }
6. специальные символы: ^ # $ и др.
С помощью символов алфавита записываются служебные (зарезервированные) слова, которые составляют словарь языка. Служебные слова представляют собой имена операторов, разделов описаний, системных переменных и других элементов языка.
Синтаксис языка программирования – набор правил записи элементов языка символами алфавита. Используя синтаксические правила, записывается текст программы.
Семантика языка программирования – это правила придания смысла, содержательной части программаммы. Семантика языка высокого уровня может быть определена через описание правил выполнения программы.
Используя алфавит, словарь и правила языка программирования, составляет текст программы. В операторных языках (Фортран, Бейсик, Паскаль. С) текст программы в основном состоит из операторов. В конце каждого оператора записывают специальный символ. Текст программы рекомендуется структурировать, так чтобы улучшить его читаемость. Структура программы может формироваться при записи текста прорраммы на спеиальных бланках (Фортран). В современных языках программирования автоматически формируются шаблоны структуры будущей программы.
Текст программы является основой для разработки программной документации. Структуру и оформление документа устанавливают в соответствии с ГОСТ 19.105-78.
19.101-77. 2.
Текст программы, как правило, хранится на каком то носителе. На персональных коипьютерах используют магнитны и оптические носители, а на более ранних компьютерах – специальные бумажные носители (перфоленты и перфокарты).
Интерпретаторы и компиляторы.
Выполнение программы в компьютере происходит с помощью машинных команд (кодов) процессора. Поэтому текст программы, написанный на языке программирования необходимо преобразоватьть в машине команды.Такое преобразование выполняется с помошью интерпретаторов или компиляторов (трансляторов).
Интерпретатор – это программа, которая воспринимает входную программу на исходном языке, проверяет наличие синтаксических ошибк и, если их нет, то выполняет ее.
Примером инерпретирующей прораммы является MathCad. Интерпретатор не создает загрузочный модуль – файл с расширением имени ЕХЕ. Разработка, редактирование и выполнение программы происходит внутри интерпретатора. Другим способом преобразования текста сязыкапрограммирования в машинные коды является компиляция (трансляция). Термин трансляция появился с языком программирования фортран как результат сокращения слов формула и трансляция. По мере развития языков программирования изменялись и дополнялись способы получения объектного кода. Важным элементом современных компиляторов является оптимизация объектного кода.
В современных системах программирования существуютреализации, сочетающие в себе и функции компилятора, и функции интерпретатора. (интерпретируется). Некоторые современные языки программирования предполагают две стадии разработки: сначала исходная программа компилируется в промежуточный код, а затем этот результат компиляции выполняется с помощью интерпретатора данного промежуточного языка. Примером интерпретируемого языка может служить html (hypertext markup language) – язык описания гипертекста или языки java и javascript – сочетают в себе функции компиляции и интерпретации.
Уровни языкоа прошраммир
Языки программирования являются искусственными. В них синтаксис и семантика строго определены. Поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня
Уровни языков программирования и эволюция языков
Языки программирования часто классифицируют по уровню. Уровень языка показывает, насколько язык близок к естественной для человека записи.
Процедурные языки – самого низкого уровня. Функциональные – значительно выше.
Логические языки – в принципе могут быть самого высокого уровня, но из-за высокой сложности теории, лежащей в их основе, разрабатываются довольно медленно. Широко распространённых в мире языков логической группы довольно мало.
.В настоящее время в мире существует несколько сотен реально используемых языков программирования.
В зависимости от степени детализации предписаний обычно определяется уровень языка программирования - чем меньше детализация, тем выше уровень языка.
По этому критерию можно выделить следующие уровни языков программирования:
- машинные;
- машинно-оpиентиpованные (ассемблеpы);
- машинно-независимые (языки высокого уровня).
Машинные языки и машинно-ориентированные языки- это
1 уровень. Языки низкого уровня или языки первого поколения -, требующие указания мелких деталей процесса обработки данных.
2 уровень. Использовали ЭВМ 2-го поколения (транзисторные). Это языки второго поколения, в которых степень интеграции действий была на порядок выше. Это такие языки, как макроассемблер и автокод.
3 уровень. Языки высокого уровня или языки третьего поколения – имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека. Примером такого языка был автокод ИНЖЕНЕР (АКИ).
Языки высокого уровня делятся на:
- процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи. Процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
- логические (Пролог, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
- объектно-ориентированные Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
- Языки визуального программирования.Основой разработки программ с поиощью этих языков являются специальные структуры объектного типа – визуальные компоненты.