
- •1. Основные понятия спо.
- •2. Функции ос
- •5. Ресурсы. Классификация ресурсов.
- •6. Понятие сетевых ос и распределенных ос Функциональные компоненты сос.
- •7. Сетевые службы и сетевые сервисы, щ
- •8. Схемы построения сетей (одноранговые сети, сети с выделенными серверами, гибридные сети).
- •9. Трансляторы. Компиляторы. Интерпретаторы. J
- •10. Этапы компиляции. Общая схема работы компилятора.
10. Этапы компиляции. Общая схема работы компилятора.
Процесс компиляции состоит из двух этапов - анализа и синтеза.
На этапе анализа выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификато-ров. Результатом его работы служит некое внутреннее представ-1 ление программы, понятное компилятору. т
На этапе синтеза на основании внутреннего представления программы и информации, содержащейся в таблицах идентифи! кагоров, порождается текст результирующей программы. Рш зультатом этого этапа является код. I
Кроме того, в составе компилятора присутствует часть, ощ ветственная за анализ и исправление ошибок, которая при нали! чии ошибки в тексте исходной программы должна максимально полно информировать пользователя о типе ошибке и месте el возникновения. 1
Эти этапы, в свою очередь, состоят из более мелких этапов! названных фазами компиляции. Состав фаз компиляции приве4 ден на рисунке в общем виде. Их конкретная реализация и npoJ цесс взаимодействия могут различаться в зависимости от версии] компилятора. I
Лексический анализ- это часть компилятора, которая читает ли-| теры программы на исходном языке и строит из них слова (лек-1 симы) исходного языка. На вход лексического анализатора по-1 ступает текст исходной программы, а выходная информация! передается для дальнейшей обработки компилятором на этапе] синтаксического разбора. I
Синтаксический разбор- это основная часть компилятора на этапе анализа. Она выполняет выделение синтаксической конст-] рукции в тексте исходной программы, и проверяет правильность! программы. I
Семантический анализ- часть компилятора, проверяющая npaJ вильность текста программы с точки зрения семантики входного] языка. |
Подготовка к генерации кода- это фаза, на которой компилятор ром выполняются предварительные действия, связанные с синн тезом текста результирующей программы, но еще не ведущей^! порождению текста на выходном языке. Обычно в эту фазу вхН дят действия, связанные с идентификацией элементов языка! распределением памяти и т.д. I
Генерация кода - эта фаза, непосредственно связанная с порож-1 дением команд, составляющих предложение выходного языка и] в целом текст результирующей программы. Генерация обычнаиыиочает в себя также оптимизацию- процесс, связанный с об-||«Ооткой уже порожденного текста.
| аОлица идентификаторов- это специальным образом организо-нйннме наборы данных, служащие для хранения информации об i не ментах исходной программы , которые затем используются ним порождения текста результирующей программы