Сделай Сам Свою Работу на 5

Языки программирования высокого уровня





 

«Родным» языком ЭВМ является язык машинных команд (ЯМК). Самые первые ламповые ЭВМ понимали только этот язык. В программах на ЯМК данные обозначаются их адреса­ми в памяти машины, выполняемые операции — числовыми кодами. Программист сам должен заботиться о расположе­нии в памяти ЭВМ команд программы и данных.

Современные программисты так не работают. Для про­граммирования на современных ЭВМ применяются систе­мы программирования (СП).

Программное обеспечение компьютера делится на три части:

— системное ПО,

—прикладное ПО,

— системы программирования.

Системное ПО — это, прежде всего, опера­ционные системы, диалоговые оболочки типа Norton Com­mander. Прикладное ПО — это многочисленные редакторы, электронные таблицы, информационные системы, матема­тические пакеты, экспертные системы и многое другое, с чем работает абсолютное большинство пользователей.

Системы программирования предназначены для создания программ управления компьютером.

Системы программирования позволяют исполнять на ЭВМ программы, написанные на языках более высокого уровня, чем язык машинных команд.



Понятие уровня языка программирования связано со степенью его удален­ности от языка процессора ЭВМ и приближенности к есте­ственному человеческому языку, к формальному языку предметной области (чаще всего — математики). Чем выше уровень, тем дальше от ЭВМ и ближе к человеку.

Язык машинных команд — это язык самого низкого уровня. Первые языки программирования, отличные от ЯМК, появились на машинах первого поколения и называ­лись они Автокодами.

Автокод — это машинно-ориентированный язык символического программирования.

Одна команда на Автокоде соответствует одной машинной команде.

Начиная с машин третьего поколения, языки такого типа стали называть Ассемблерами. В наше время на Ассемблере программируют довольно редко. Это, как правило, делают системные программисты.

Сокращение ЯПВУ расшифровывается так: языки про­граммирования высокого уровня. Сегодня большинство про­граммистов работают именно на этих языках. Наиболее рас­пространенными являются языки Паскаль, Бейсик, СИ, Фортран.



Вот пример записи одной и той же команды сложения двух чисел на трех языках разного уровня: ЯМК, Автокоде и Паскале:

С:=А+В Паскаль

ADD А, В, С Автокод

01 24 28 2С ЯМК

Видно, как с повышением уровня языка повышается «понятность» команды (по-английски слово ADD означает «сложить»). Однако, чем понятнее для человека, тем непонятнее для процессора ЭВМ.

Таким образом, компьютер сам производит перевод под управлением программы-транслятора. Процесс перевода программы на язык машинных команд называется транс­ляцией.Прежде чем выполнить, например, программу на Паскале, ее нужно оттранслировать.Трансляцию можно представить как спуск с верхней ступеньки языка на самую первую ступеньку — ЯМК:

Рис. Трансляция с Автокода и Паскаля на ЯМК

Транслятор является обязательным элементом любой системы программирования. Первые СП включали в себя только транслятор. Затем к транслятору стали добавляться различные сервисные средства: текстовые редакторы, отлад­чики, системы обслуживания программных библиотек, сред­ства организации дружественного интерфейса с пользовате­лем.

Наиболее удобными для пользователя стали системы про­граммирования, созданные на персональных компьютерах.

Язык программирования, с которым работает СП, назы­вается ее входным языком. Системы программирования именуются по названию своего входного языка. Например: «Система Бейсик», «Система Паскаль», «Система Фортран».

Иногда в название систем включаются префиксы, обозна­чающие, например, ее фирменное происхождение. Очень по­пулярны системы с приставкой «Турбо»: Турбо-Паскаль, Турбо-СИ и др. Это системы программирования, разрабо­танные фирмой Borland.



О двух способах трансляции. Реализовать тот или иной язык программирования на ЭВМ — это значит создать транслятор с этого языка для данной ЭВМ. Существуют два принципиально различных метода трансляции. Они назы­ваются «компиляция»и «интерпретация».

Компиляция является аналогом полного предваритель­ного перевода; интерпретация аналог синхронного пере­вода. Транслятор, работающий по принципу компиляции, называется компилятором. Транслятор, работающий мето­дом интерпретации, называется интерпретатором.

При компиляции в память ЭВМ загружается программа-компилятор. Она воспринимает текст программы на ЯПВУ как исходную информацию. Компилятор производит син­таксический контроль программы и при обнаружении оши­бок выводит диагностические сообщения. Если ошибок нет, то результатом компиляции является программа на языке машинных команд.

Затем компилятор удаляется из оперативной памяти. В памяти остается только программа на ЯМК, которая вы­полняется для получения результатов.

На рисунке 12.11 схематически показан процесс выпол­нения программы на ЯПВУ с использованием компиляции. Прямоугольником изображаются программы в машинных кодах, овалами — обрабатываемая и конечная информация.

Рис.

12.11. Выполнение программы на ЯПВУ с использованием ком­пилятора

 

Конечно, компиляция с Автокода-Ассемблера много проще, чем с языков высокого уровня. Для этой процедуры часто применяют специальный термин — ассемблирование. А под словом Ассемблер понимается не только язык про­граммирования, но и транслятор с него.

Интерпретатор в течение всего времени работы програм­мы находится во внутренней памяти (иногда для этого ис­пользуется ПЗУ). В ОЗУ помещается программа на ЯПВУ. Интерпретатор «читает ее первый оператор, переводит его в машинные команды и тут же организует выполнение этих команд. Затем переходит к переводу и выполнению следу­ющего оператора и так до конца программы. При этом ре­зультаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одного и того же оператора в цикле, он снова будет транслироваться. Перед трансляцией каждого оператора происходит его синтаксический анализ.

На рисунке 12.12 схематически показан процесс выполне­ния программы на ЯПВУ с использованием интерпретации.

Таким образом, при компиляции трансляция и исполне­ние программы идут последовательно друг за другом. При интерпретации — параллельно.

Один раз откомпилированная программа может быть со­хранена во внешней памяти и затем многократно выпол­няться. На компиляцию машинное время тратиться больше не будет. Программа на интерпретируемом языке при каж­дом выполнении подвергается повторной трансляции. Кроме того, интерпретатор может занимать значительное место в оперативной памяти.

Рис. 12.12.Выполнение программы на ЯПВУ с использованием ин­терпретатора

Из-за указанных причин использование компиляторов удобнее для больших программ, требующих быстрого счета и большого объема памяти. Программы на Паскале, Си, Фортране всегда компилируются. Язык Бейсик часто реа­лизуется через интерпретатор.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.