Компиляторы. Вопросы к экзамену

Содержание

Слайд 2

Вопросы к экзамену

Определение оконченного автомата. Синтез автомата.
Из чего состоит конечный автомат? Способы

Вопросы к экзамену Определение оконченного автомата. Синтез автомата. Из чего состоит конечный
представления Диаграмма состояний конечного автомата. Матрицы переходов конечного автомата.
Чем отличается автомат Мили от автомата Мура?
Сформулируйте основные действия по преобразованию автомата Мили в автомат Мура. Примеры.
Сформулируйте основные действия по преобразованию автомата Мура в автомат Мили. В чем заключается целесообразность использования двух различных типов конечных автоматов?
Какие автоматы называют эквивалентными?
алгоритм минимизации конечного автомата.
Как определить, являются ли конечные автоматы эквивалентными?
Недетерминированные конечные автоматы как распознаватели.
Регулярные выражения. Правила преобразования.

Слайд 3

Детерминированный конечный автомат
Эквивалентность недетерминированных и детерминированных конечных автоматов
Регулярные языки
Лемма накачки регулярных языков
Свойства

Детерминированный конечный автомат Эквивалентность недетерминированных и детерминированных конечных автоматов Регулярные языки Лемма
замкнутости регулярных языков
Грамматики. Классификация Хомского.
Регулярные грамматики.
Регулярные грамматики и недетерминированные конечные автоматы восходящий и нисходящий разбор.
МП- автомат. МП- распознаватели КС- языков.
Однозначные и неоднозначные МП- автоматы.
КС- грамматики. Приведение грамматик.
Нормальная форма Хомского.
Алгоритм Кока-Янгеля-Косами.

Слайд 4

Литература

Литература

Слайд 5

Лабораторные работы

1 Необходимо перевести автомат из/в Милли/Мура в зависимости от того что

Лабораторные работы 1 Необходимо перевести автомат из/в Милли/Мура в зависимости от того
подается как входной файл.
2 Необходимо минимизировать входной автомат.
3 Преобразовать НКА в ДКА. Только для автоматов Милли.
4 Исключить не продуктивные и не достижимые правила входной КС грамматики. Подробное описание алгоритма находится в Л-7 - Приведение грамматик.
5. Реализовать алгоритм Кока - Янгера - Касами для КС грамматики с демонстрацией его работы через построение таблицы разбора. Подробное описание алгоритма находится в Л-8 - Алгоритм Кока

Слайд 6

РГР

РГР в 1-м семестре это часть разработки комплексного проекта «Мой первый компилятор»

РГР РГР в 1-м семестре это часть разработки комплексного проекта «Мой первый
в рамках курсаТАиФЯ.
Цель в этом семестре разработать основы языка программирования и часть компилятора – лексический анализатор.

Слайд 7

основные задачи РГР

Разработать требования к создаваемому языку
Определить алфавит языка, основные

основные задачи РГР Разработать требования к создаваемому языку Определить алфавит языка, основные
лексические единицы
Определить принципы работы лексического анализатора- сканера
Привести грамматику языка с учетом лексических элементов языка
Используя генератор синтаксических распознавателей проверить грамматику языка на приведенность и однозначность
Полученный модуль распознавателя проверить на тестах и описанных в п.1 примерах решаемых задач.
Оформить проделанную работу в соответствие с требованиями к РГР

Слайд 8

Разработать требования к создаваемому языку

1. Определить назначение языка
2. Привести примеры решаемых

Разработать требования к создаваемому языку 1. Определить назначение языка 2. Привести примеры
задач
3. Определить приоритетные свойства языка

Слайд 9

Определить алфавит языка, основные лексические единицы

Основные лексические единицы (токены)- идентификаторы, числа, знаки

Определить алфавит языка, основные лексические единицы Основные лексические единицы (токены)- идентификаторы, числа,
операций, разделители, статус пробела и т.д.
Привести примеры лексем.
Привести грамматику и регулярное выражение для токенов

Слайд 10

Определить принципы работы лексического анализатора

Сканер должен работать в составе генератора, следовательно,

Определить принципы работы лексического анализатора Сканер должен работать в составе генератора, следовательно,
она по интерфейсам согласовываться с модулем разбирающим грамматику.
Изначально определим:
Вход:
Анализируемая программа считывается из файл с расширением txt, содержит текст программы
Выход:
Выходом сканера является необходимая для генератора информация.
дополнительный выход , содержит список лексем и соответствующие токены(класс, тип).
Описать структуру программы, типы используемых данных. Описать достоинства и недостатки вашего подхода.

Слайд 11

Используя генератор синтаксических распознавателей проверить грамматику языка на приведенность и однозначность

Разобраться в

Используя генератор синтаксических распознавателей проверить грамматику языка на приведенность и однозначность Разобраться
выходной информации генератора.
Определить и привести в РГР выходные данные, доказывающие правильность грамматики языка и, соответственно, сканера.

Слайд 12

Полученный модуль распознавателя проверить на описанных выше примерах решаемых задач.

Написать «чистые» и

Полученный модуль распознавателя проверить на описанных выше примерах решаемых задач. Написать «чистые»
«грязные» тесты
Проверить работу распознавателя
Результаты представить в РГР