Языки программирования высокого уровня
«Родным» языком ЭВМ является язык машинных команд (ЯМК). Самые первые ламповые ЭВМ понимали только этот язык. В программах на ЯМК данные обозначаются их адресами в памяти машины, выполняемые операции — числовыми кодами. Программист сам должен заботиться о расположении в памяти ЭВМ команд программы и данных.
Современные программисты так не работают. Для программирования на современных ЭВМ применяются системы программирования (СП).
Программное обеспечение компьютера делится на три части:
— системное ПО,
—прикладное ПО,
— системы программирования.
Системное ПО — это, прежде всего, операционные системы, диалоговые оболочки типа Norton Commander. Прикладное ПО — это многочисленные редакторы, электронные таблицы, информационные системы, математические пакеты, экспертные системы и многое другое, с чем работает абсолютное большинство пользователей.
Системы программирования предназначены для создания программ управления компьютером.
Системы программирования позволяют исполнять на ЭВМ программы, написанные на языках более высокого уровня, чем язык машинных команд.
Понятие уровня языка программирования связано со степенью его удаленности от языка процессора ЭВМ и приближенности к естественному человеческому языку, к формальному языку предметной области (чаще всего — математики). Чем выше уровень, тем дальше от ЭВМ и ближе к человеку.
Язык машинных команд — это язык самого низкого уровня. Первые языки программирования, отличные от ЯМК, появились на машинах первого поколения и назывались они Автокодами.
Автокод — это машинно-ориентированный язык символического программирования.
Одна команда на Автокоде соответствует одной машинной команде.
Начиная с машин третьего поколения, языки такого типа стали называть Ассемблерами. В наше время на Ассемблере программируют довольно редко. Это, как правило, делают системные программисты.
Сокращение ЯПВУ расшифровывается так: языки программирования высокого уровня. Сегодня большинство программистов работают именно на этих языках. Наиболее распространенными являются языки Паскаль, Бейсик, СИ, Фортран.
Вот пример записи одной и той же команды сложения двух чисел на трех языках разного уровня: ЯМК, Автокоде и Паскале:
С:=А+В Паскаль
ADD А, В, С Автокод
01 24 28 2С ЯМК
Видно, как с повышением уровня языка повышается «понятность» команды (по-английски слово ADD означает «сложить»). Однако, чем понятнее для человека, тем непонятнее для процессора ЭВМ.
Таким образом, компьютер сам производит перевод под управлением программы-транслятора. Процесс перевода программы на язык машинных команд называется трансляцией.Прежде чем выполнить, например, программу на Паскале, ее нужно оттранслировать.Трансляцию можно представить как спуск с верхней ступеньки языка на самую первую ступеньку — ЯМК:
Рис. Трансляция с Автокода и Паскаля на ЯМК
Транслятор является обязательным элементом любой системы программирования. Первые СП включали в себя только транслятор. Затем к транслятору стали добавляться различные сервисные средства: текстовые редакторы, отладчики, системы обслуживания программных библиотек, средства организации дружественного интерфейса с пользователем.
Наиболее удобными для пользователя стали системы программирования, созданные на персональных компьютерах.
Язык программирования, с которым работает СП, называется ее входным языком. Системы программирования именуются по названию своего входного языка. Например: «Система Бейсик», «Система Паскаль», «Система Фортран».
Иногда в название систем включаются префиксы, обозначающие, например, ее фирменное происхождение. Очень популярны системы с приставкой «Турбо»: Турбо-Паскаль, Турбо-СИ и др. Это системы программирования, разработанные фирмой Borland.
О двух способах трансляции. Реализовать тот или иной язык программирования на ЭВМ — это значит создать транслятор с этого языка для данной ЭВМ. Существуют два принципиально различных метода трансляции. Они называются «компиляция»и «интерпретация».
Компиляция является аналогом полного предварительного перевода; интерпретация — аналог синхронного перевода. Транслятор, работающий по принципу компиляции, называется компилятором. Транслятор, работающий методом интерпретации, называется интерпретатором.
При компиляции в память ЭВМ загружается программа-компилятор. Она воспринимает текст программы на ЯПВУ как исходную информацию. Компилятор производит синтаксический контроль программы и при обнаружении ошибок выводит диагностические сообщения. Если ошибок нет, то результатом компиляции является программа на языке машинных команд.
Затем компилятор удаляется из оперативной памяти. В памяти остается только программа на ЯМК, которая выполняется для получения результатов.
На рисунке 12.11 схематически показан процесс выполнения программы на ЯПВУ с использованием компиляции. Прямоугольником изображаются программы в машинных кодах, овалами — обрабатываемая и конечная информация.
Рис.
12.11. Выполнение программы на ЯПВУ с использованием компилятора
Конечно, компиляция с Автокода-Ассемблера много проще, чем с языков высокого уровня. Для этой процедуры часто применяют специальный термин — ассемблирование. А под словом Ассемблер понимается не только язык программирования, но и транслятор с него.
Интерпретатор в течение всего времени работы программы находится во внутренней памяти (иногда для этого используется ПЗУ). В ОЗУ помещается программа на ЯПВУ. Интерпретатор «читает ее первый оператор, переводит его в машинные команды и тут же организует выполнение этих команд. Затем переходит к переводу и выполнению следующего оператора и так до конца программы. При этом результаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одного и того же оператора в цикле, он снова будет транслироваться. Перед трансляцией каждого оператора происходит его синтаксический анализ.
На рисунке 12.12 схематически показан процесс выполнения программы на ЯПВУ с использованием интерпретации.
Таким образом, при компиляции трансляция и исполнение программы идут последовательно друг за другом. При интерпретации — параллельно.
Один раз откомпилированная программа может быть сохранена во внешней памяти и затем многократно выполняться. На компиляцию машинное время тратиться больше не будет. Программа на интерпретируемом языке при каждом выполнении подвергается повторной трансляции. Кроме того, интерпретатор может занимать значительное место в оперативной памяти.
Рис. 12.12.Выполнение программы на ЯПВУ с использованием интерпретатора
Из-за указанных причин использование компиляторов удобнее для больших программ, требующих быстрого счета и большого объема памяти. Программы на Паскале, Си, Фортране всегда компилируются. Язык Бейсик часто реализуется через интерпретатор.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|