Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / спо / СПО_шпоры.doc
Скачиваний:
5
Добавлен:
26.01.2019
Размер:
87.04 Кб
Скачать

10. Этапы компиляции. Общая схема работы компилято­ра.

Процесс компиляции состоит из двух этапов - анализа и синтеза.

На этапе анализа выполняется распознавание текста исход­ной программы, создание и заполнение таблиц идентификато-ров. Результатом его работы служит некое внутреннее представ-1 ление программы, понятное компилятору. т

На этапе синтеза на основании внутреннего представления программы и информации, содержащейся в таблицах идентифи! кагоров, порождается текст результирующей программы. Рш зультатом этого этапа является код. I

Кроме того, в составе компилятора присутствует часть, ощ ветственная за анализ и исправление ошибок, которая при нали! чии ошибки в тексте исходной программы должна максимально полно информировать пользователя о типе ошибке и месте el возникновения. 1

Эти этапы, в свою очередь, состоят из более мелких этапов! названных фазами компиляции. Состав фаз компиляции приве4 ден на рисунке в общем виде. Их конкретная реализация и npoJ цесс взаимодействия могут различаться в зависимости от версии] компилятора. I

Лексический анализ- это часть компилятора, которая читает ли-| теры программы на исходном языке и строит из них слова (лек-1 симы) исходного языка. На вход лексического анализатора по-1 ступает текст исходной программы, а выходная информация! передается для дальнейшей обработки компилятором на этапе] синтаксического разбора. I

Синтаксический разбор- это основная часть компилятора на этапе анализа. Она выполняет выделение синтаксической конст-] рукции в тексте исходной программы, и проверяет правильность! программы. I

Семантический анализ- часть компилятора, проверяющая npaJ вильность текста программы с точки зрения семантики входного] языка. |

Подготовка к генерации кода- это фаза, на которой компилятор ром выполняются предварительные действия, связанные с синн тезом текста результирующей программы, но еще не ведущей^! порождению текста на выходном языке. Обычно в эту фазу вхН дят действия, связанные с идентификацией элементов языка! распределением памяти и т.д. I

Генерация кода - эта фаза, непосредственно связанная с порож-1 дением команд, составляющих предложение выходного языка и] в целом текст результирующей программы. Генерация обычнаиыиочает в себя также оптимизацию- процесс, связанный с об-||«Ооткой уже порожденного текста.

| аОлица идентификаторов- это специальным образом организо-нйннме наборы данных, служащие для хранения информации об i не ментах исходной программы , которые затем используются ним порождения текста результирующей программы

Соседние файлы в папке спо