Скачать презентацию ГЛАВА 1 Проектирование трансляторов к т н Скачать презентацию ГЛАВА 1 Проектирование трансляторов к т н

Глава 1.pptx

  • Количество слайдов: 18

ГЛАВА 1 Проектирование трансляторов к. т. н. , доцент, зам. зав. кафедры ИТи. ПИ ГЛАВА 1 Проектирование трансляторов к. т. н. , доцент, зам. зав. кафедры ИТи. ПИ Бальченко Ирина Владимировна ауд. 55

Цели и задачи курса • Познакомится с базовыми идеями и методами, используемыми при создании Цели и задачи курса • Познакомится с базовыми идеями и методами, используемыми при создании трансляторов, а также получить практические навыки построения простейших компиляторов. 2

Модули Лабораторные работы Модуль 1 ТЕСТЫ РГР 15 б 20 б – Общая теория Модули Лабораторные работы Модуль 1 ТЕСТЫ РГР 15 б 20 б – Общая теория Л. Р. № 1 – 5 б Лексический анализ Л. Р. № 2 – 10 б Модуль 2 Синтаксический анализ 15 б Генерация кода Средства автомат. постр. трансляторов 20 б – Л. Р. № 3 – 15 б Семантический анализ Модуль 3 Тест № 1 – 20 б Тест № 2 – 20 б – 10 б Л. Р. № 4 – 10 б Л. Р. № 5 – 10 б РГР – 10 б 3

Литература Волкова И. А. , Руденко Т. В. “Формальные грамматики и языки. Элементы теории Литература Волкова И. А. , Руденко Т. В. “Формальные грамматики и языки. Элементы теории трансляции”: учебное пособие. – М. : МГУ, 1999 – 62 с. 4

Теория развития компиляторов развивалась в течение последних 70 лет. Процесс создания новых компиляторов не Теория развития компиляторов развивалась в течение последних 70 лет. Процесс создания новых компиляторов не прекращается, это связано с: • развитием технологии вычислительных систем • с необходимостью решения более сложных разнообразных прикладных задач. 5

6 6

Существуют языки: • логики (Prolog 1970, программа представляет собой набор целей и правил, которые Существуют языки: • логики (Prolog 1970, программа представляет собой набор целей и правил, которые будут выполняться для достижения цели) • функциональные (Lisp, оперируют функциями высокого порядка, не данными!!!) • параллельного программирования (MPI) • объектные языки (Java, С#) • запросов (SQL) • четвертого поколения 4 GL (используют естественные языки или визуальные конструкции) • мета-языки PNF (язык предназначен для описания другого языка). 7

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

Основные понятия и определения • Ассемблер – системная обслуживающая программа, преобразующая символические конструкции в Основные понятия и определения • Ассемблер – системная обслуживающая программа, преобразующая символические конструкции в команды машинного языка. • Машинный код - набор кодов операций, выполняемых определенной машиной. 9

Основные понятия и определения Интерпретатор – программа или устройство, осуществляющая последовательную интерпретацию и выполнение Основные понятия и определения Интерпретатор – программа или устройство, осуществляющая последовательную интерпретацию и выполнение исходной программы. • Интерпретатор не порождает объектную программу, распознает и сразу выполняет. • Граница между компиляцией и интерпретацией в трансляторе может перемещаться от входного языка (чистый интерпретатор) до машинного языка (чистый компилятор). 10

Основные понятия и определения • Если выходной язык компилятора является машинным языком для компьютера Основные понятия и определения • Если выходной язык компилятора является машинным языком для компьютера с другой архитектурой, нежели тот, в котором работает компилятор, то такой компилятор называется кросс компилятором, а сама система – кросс система. • Эмулятор – программа или программнотехническое средство, обеспечивающая возможность без перепрограммирования выполнять на данной ЭВМ программу, использующую коды или способы выполнения операций, отличные от данной ЭВМ. 11

Основные понятия и определения • Перекодировщик – программа или программное устройство, переводящее программы, написанные Основные понятия и определения • Перекодировщик – программа или программное устройство, переводящее программы, написанные на машинном языке одной ЭВМ в машинный язык другой ЭВМ. (пример, компилятора). • Препроцессор (макропроцессор) – программа, обеспечивающая замену одной последовательности символов в другую последовательность. • Перемещаемая программа – программа (или часть программы) которая может быть загружена в любую область памяти. Обычно такая программа разделяется на управляющие секции, и все требуемые адреса выражаются относительно начала соответствующей секции. Компилятор или ассемблер создает таблицу всех таких обращений к памяти, а программа-загрузчик преобразует их в абсолютные адреса. 12

Основные технические средства, используемые в комплексе с компиляторами • Текстовый редактор – служит для Основные технические средства, используемые в комплексе с компиляторами • Текстовый редактор – служит для создания исходных текстов • Компоновщик – позволяет объединять несколько объектных модулей, библиотеки прикладных программ, которые содержат в себе уже откомпилированные объектные модули и объединены в единое целое • Загрузчик – обеспечивает подготовку готовой программы к выполнению (часть ОС). • Отладчик 13

Общая схема работы компилятора 14 Общая схема работы компилятора 14

Процесс прохода. Разнопроходные компиляторы • Проход – это процесс последовательного чтения компилятором данных из Процесс прохода. Разнопроходные компиляторы • Проход – это процесс последовательного чтения компилятором данных из внешней памяти, их обработка, и помещение результата работы во внешнюю память. Различают одно-, двух-, трех- проходные компиляторы. 15

Трехпроходный компилятор 16 Трехпроходный компилятор 16

Двухпроходный компилятор 17 Двухпроходный компилятор 17

Однопроходный компилятор 18 Однопроходный компилятор 18