Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Контекст компилятора

Читайте также:
  1. В СОЦИАЛЬНО-ИСТОРИЧЕСКОМ И ФИЛОСОФСКОМ КОНТЕКСТЕ РУБЕЖА ВЕКОВ
  2. Герменевтическая концепция образа во внешних контекстах
  3. Глава 1: Контексты открытия
  4. Еколого-економічний простір в контексті регіонального розвитку
  5. Изучение непосредственного контекста.
  6. ИСТЕРИКА» «АГАТЫ КРИСТИ»: ТЕКСТ И КОНТЕКСТ
  7. Исторический контекст: диагностика уровня патологии характера

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

На рис. 1.3 показана типичная "компиляция". Целевая программа, создаваемая ком­пилятором, может потребовать дополнительной обработки перед запуском. Компилятор, представленный на рис. 1.3, создает ассемблерный код, который переводится ассембле­ром в машинный код, а затем связывается ("линкуется") совместно с некоторыми биб­лиотечными программами в реально запускаемый на машине код.

В следующих двух разделах мы рассмотрим компоненты компилятора; остальные программы, представленные на рис. 1.3, будут рассмотрены в разделе 1.4.


 

Скелетная исходная программа
Препроцессор
Исходная программа
Компилятор
Целевая ассемблерная программа
Ассемблер
Перемещаемый машинный код
Загрузчик / редактор связи
Библиотека, объектные файлы
Абсолютный машинный код

 


Рис. 1.3. Система обработки языка

 

 

Анализ исходной программы

В этом разделе будет рассмотрен процесс анализа и проиллюстрировано его исполь­зование в некоторых языках форматирования текста. Детальнее об этом будет говорить­ся в главах 2-4 и 6. При компиляции анализ состоит из трех фаз.

Линейный анализ, при котором поток символов исходной программы считывается слева направо и группируется в токены (token), представляющие собой последова­тельности символов с определенным совокупным значением.

1. Иерархический анализ, при котором символы или токены иерархически группиру­ются во вложенные конструкции с совокупным значением.

2. Семантический анализ, позволяющий проверить, насколько корректно совместное размещение компонентов программы.

 

Лексический анализ

В компиляторах линейный анализ называется лексическим, или сканированием. На­пример, при лексическом анализе символы в инструкции присвоения

position:= initial + rate * 60 будут сгруппированы в следующие токены.

1. Идентификатор position.

2. Символ присвоения: =.

3. Идентификатор initial.

4. Знак сложения.

5. Идентификатор rate.

6. Знак умножения.

7. Число 60.

Пробелы, разделяющие символы этих токенов, при лексическом анализе обычно от­брасываются.


Дата добавления: 2015-11-30; просмотров: 23 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.006 сек.)