Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Компиляция - Компилятор

.docx
Скачиваний:
24
Добавлен:
11.02.2015
Размер:
15.02 Кб
Скачать

Компиляция / Компилятор

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

После ввода текста функции обработки события и сохранения проекта можно из меню Project выбрать команду Compile и выполнить компиляцию. Процесс и результат компиляции отражаются в диалоговом окне Compiling (РИС. В38). В это окно компилятор выводит ошибки (Errors), предупреждений (warnings) и подсказок (Hints). Сами сообщения об ошибках, предупреждения и подсказки отображаются в нижней части окна редактора кода (рис. В39).

Примечание

Если во время компиляции окна Compiling на экране нет, то выберите из меню Tools команду Environment options и на вкладке Preferences установите во включенное состояние переключатель Show compiler progress.

Компилятор

Компилятор

Компилятор - программа, преобразующая текст, написанный на алгоритмическом языке, в программу, состоящую из машинных команд. Компилятор создает законченный вариант программы на машинном языке.

Как работает компилятор?

Создание компилятора – обычная практика для студентов IT-специальностей западных стран: это умение помогает учащемуся глубже понять технологию создания системного программного обеспечения, заглянув за рамки пользовательского интерфейса ОС. К сожалению, в российском обучении такой подход не практикуется, что и приводит к тому, что российского компьютерного софта существует так мало.

Компилятор – это программа, которая превращает исходный текст, созданный на языке программирования, в машинный код, способный к выполнению процессором. Точнее, загрузчиком для ОС, на которую рассчитан компилятор. Сами языки программирования могут быть стандартными или авторскими. Создание авторского языка и компилятора к нему весьма похвально, но следует иметь в виду, что распространение этой связки будет затруднительным из-за первоначальной поддержки сообществом программистов.

Как правило, компилятор состоит из нескольких стандартных частей: парсера, лексического анализатора, кодогенератора, оптимизатора. Парсер следит за правильностью структуры программы, лексический анализатор выделяет из потока парсера лексемы, определяет их и составляет внутренние таблицы переменных, вызовов процедур и т.д. Если компилятор является однопроходным, то в процессе анализа лексем может работать кодогенератор, формируя выходной машинный код. Так как компьютеры сейчас очень быстрые, то имеет смысл разработка многопроходных компиляторов: в этом случае вся программа переводится в промежуточный код – к примеру, пи-код. Пи-код интересен тем, что позволяет оптимизировать программу еще на начальном этапе, а кодогенератор способен преобразовать ее не только в коды данного компьютера, но и в выходной код другой платформы. Таким образом можно получить многоплатформенный компилятор, работающий, скажем, под DOS/DOS32/Windows и Linux.

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

Интересно, что компилятор может не быть реализован в виде отдельной программы, как это было раньше: его можно создать как библиотеку dll и, к примеру, использовать для поддержки скриптов или макросов в боле сложных программах.