29374

Фазы трансляции программ

Доклад

Информатика, кибернетика и программирование

На вход лексического анализатора подаётся последовательность символов входного языка. ЛА выделяет в этой последовательности простейшие конструкции языка которые называют лексическими единицами лексемами. Генератор каждому символу действия поступающему на его вход ставит в соответствие одну или несколько команд выходного языка. В качестве выходного языка могут быть использованы команды устройства команды ассемблера либо операторы какоголибо другого языка.

Английский

2013-08-21

32.5 KB

2 чел.

10) Фазы трансляции программ.

Работа компилятора состоит из нескольких стадий, которые могут выполняться последовательно, либо совмещаться по времени. Эти стадии могут быть представлены в виде схемы.

Первая стадия работы компилятора называется лексическим анализом, а программа, её реализующая, - лексическим анализатором (ЛА). На вход лексического анализатора подаётся последовательность символов входного языка. ЛА выделяет в этой последовательности простейшие конструкции языка, которые называют лексическими единицами (лексемами). Примерами лексических единиц являются идентификаторы, числа, символы операций, служебные слова и т.д. ЛА преобразует исходный текст, заменяя лексические единицы их внутренним представлением - лексемами. Лексема может включать информацию о классе лексической единицы и её значении. Кроме того, для некоторых классов лексических единиц ЛА строит таблицы, например, таблицу идентификаторов, констант, которые используются на последующих стадиях компиляции.

Вторую стадию работы компилятора называют синтаксическим анализом, а соответствующую программу - синтаксическим анализатором (СА). На вход СА подается последовательность лексем, которая преобразуется в промежуточный код, представляющий собой последовательность символов действия или атомов. Каждый атом включает описание операции, которую нужно выполнить, с указанием используемых операндов. При этом последовательность расположения атомов, в отличие от лексем, соответствует порядку выполнения операций, необходимому для получения результата.

На третьей стадии работы компилятора осуществляется построение выходного текста, или синтез исходного кода программы. Программа, реализующая эту стадию, называется генератором выходного текста (Г). Генератор каждому символу действия, поступающему на его вход, ставит в соответствие одну или несколько команд выходного языка. В качестве выходного языка могут быть использованы команды устройства, команды ассемблера, либо операторы какого-либо другого языка.


 

А также другие работы, которые могут Вас заинтересовать

74546. Программирование. Языки программирования низкого и высокого уровней 25.55 KB
  Языки программирования низкого уровня Первым компьютерам приходилось программировать двоичными машинными кодами. Для упрощения этой задачи стали появляться языки программирования низкого уровня которые позволяли задавать машинные команды в более понятном для человека виде. Примером языка низкого уровня является ассемблер. Языки низкого уровня ориентированы на конкретный тип процессора и учитывают его особенности поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать.
74547. Unix 16.31 KB
  Именно в 1969 году была создана первая Unix система компанией TT и торговая марка Unix по праву теперь принадлежит этой компании. Unix это многопользовательская многотерминальная операционная система которая в силе выполнять множество задач как под Вашим чутким руководством так и без. Существует целое семейство так называемых Unix подобных систем которые в большинстве случаев могут быть совместимы друг с другом на уровне исходных текстов программ. Все пользователи операционной системы Linux а именно потому что имеем возможность...
74548. Linux 19.3 KB
  История Linux началась в 1991 году когда студент Хельсинского университета Линус Торвальдс выпустил первый релиз этой операционной системы. Именно идея расширить возможности этой операционной системы и послужила основным мотивом разработки Linux. Хотя идея новой операционной системы и первые ее релизы почти полностью принадлежат одному человеку дальнейшее развитие Linux происходило и происходит благодаря участию в этом проекте десятков тысяч программистов всего мира. Однако эта команда разработчиков Linux не имеет ни штабквартиры ни...
74549. BSD (Berkeley Software Distribution) 15.56 KB
  BSDLite были созданы несколько операционных систем с открытыми исходными кодами. Вот что такое собственно операционная система BSD: Ядро BSD отвечающее за планировку процессов управление памятью поддержку многопроцессорных систем SMP работу с устройствами и так далее. В отличие от Linux существует несколько ядер BSD отличающихся возможностями. Библиотека C в BSD основывается на коде из Беркли а не из Проекта GNU.
74551. Пакетный файл 20.46 KB
  После запуска пакетного файла программаинтерпретатор как правило COMMND. Командный интерпретатор в MSDOS а следом и в семействе Windows 9x имеет название COMMND.BT который автоматически исполняется COMMND.exe который частично совместим с COMMND.