Similar presentations:
Проектирование трансляторов языков программирования. Схема работы компилятора. (Глава 1)
1. Проектирование трансляторов
ГЛАВА 1Проектирование трансляторов
к.т.н., доцент, зам. зав. кафедры ИТиПИ
Бальченко Ирина Владимировна
ауд. 55
2. Цели и задачи курса
• Познакомится с базовыми идеями иметодами, используемыми при создании
трансляторов, а также получить
практические навыки построения
простейших компиляторов.
2
3. Модули
Модуль 1Лабораторные
работы
ТЕСТЫ
РГР
15 б
20 б
–
Общая теория
Л.Р. № 1 – 5 б
Лексический анализ
Л.Р. № 2 – 10 б
Модуль 2
Синтаксический
анализ
15 б
Генерация кода
Средства автомат.
постр. трансляторов
20 б
–
Л.Р. № 3 – 15 б
Семантический анализ
Модуль 3
Тест №1 – 20 б
Тест №2 – 20 б
20 б
–
10 б
Л.Р. № 4 – 10 б
Л.Р. № 5 – 10 б
РГР – 10 б
3
4. Литература
Волкова И.А., Руденко Т.В. “Формальныеграмматики и языки. Элементы
теории трансляции”: учебное пособие. – М.:МГУ,
1999 – 62 с.
4
5. Теория развития компиляторов развивалась в течение последних 70 лет. Процесс создания новых компиляторов не прекращается, это
связано с:• развитием технологии вычислительных
систем
• с необходимостью решения более сложных
разнообразных прикладных задач.
5
6.
67. Существуют языки:
• логики (Prolog1970, программа представляет собойнабор целей и правил, которые будут выполняться
для достижения цели)
• функциональные (Lisp, оперируют функциями
высокого порядка, не данными!!!)
• параллельного программирования (MPI)
• объектные языки (Java, С#)
• запросов (SQL)
• четвертого поколения 4GL (используют
естественные языки или визуальные конструкции)
• мета-языки PNF (язык предназначен для описания
другого языка).
7
8. Основные понятия и определения
• Транслятор – обслуживающая программа,преобразующая исходную программу на
входном языке программирования в
рабочую программу на результирующем
языке.
• Компилятор – транслятор, преобразующий
исходную программу в эквивалентную ей
программу на машинном языке или языке
ассемблера.
8
9. Основные понятия и определения
• Ассемблер – системная обслуживающаяпрограмма, преобразующая символические
конструкции в команды машинного языка.
• Машинный код - набор кодов операций,
выполняемых определенной машиной.
9
10. Основные понятия и определения
Интерпретатор – программа или устройство,осуществляющая последовательную
интерпретацию и выполнение исходной
программы.
• Интерпретатор не порождает объектную
программу, распознает и сразу выполняет.
• Граница между компиляцией и
интерпретацией в трансляторе может
перемещаться от входного языка (чистый
интерпретатор) до машинного языка (чистый
компилятор).
10
11. Основные понятия и определения
• Если выходной язык компилятора являетсямашинным языком для компьютера с другой
архитектурой, нежели тот, в котором работает
компилятор, то такой компилятор называется
кросс компилятором, а сама система – кросс
система.
• Эмулятор – программа или программнотехническое средство, обеспечивающая
возможность без перепрограммирования
выполнять на данной ЭВМ программу,
использующую коды или способы выполнения
операций, отличные от данной ЭВМ.
11
12. Основные понятия и определения
• Перекодировщик – программа или программноеустройство, переводящее программы, написанные на
машинном языке одной ЭВМ в машинный язык другой
ЭВМ. (пример, компилятора).
• Препроцессор (макропроцессор) – программа,
обеспечивающая замену одной последовательности
символов в другую последовательность.
• Перемещаемая программа – программа (или часть
программы) которая может быть загружена в любую
область памяти. Обычно такая программа разделяется
на управляющие секции, и все требуемые адреса
выражаются относительно начала соответствующей
секции. Компилятор или ассемблер создает таблицу
всех таких обращений к памяти, а программа-загрузчик
преобразует их в абсолютные адреса.
12
13. Основные технические средства, используемые в комплексе с компиляторами
• Текстовый редактор – служит для созданияисходных текстов
• Компоновщик – позволяет объединять
несколько объектных модулей, библиотеки
прикладных программ, которые содержат в
себе уже откомпилированные объектные
модули и объединены в единое целое
• Загрузчик – обеспечивает подготовку готовой
программы к выполнению (часть ОС).
• Отладчик
13
14. Общая схема работы компилятора
1415. Процесс прохода. Разнопроходные компиляторы
• Проход – это процесс последовательногочтения компилятором данных из внешней
памяти, их обработка, и помещение
результата работы во внешнюю память.
Различают одно-, двух-, трех- проходные
компиляторы.
15