
2. Порядок выполнения работы
Получите вариант задания у преподавателя.
Представьте структуру языка в формах Бэкуса-Науэра.
Отладьте написанную грамматику с помощью учебной оболочки.
Проверьте правильность написанной грамматики, построив несколько выводов конструкций заданного языка.
Составьте отчет.
ИСПОЛЬЗОВАНИЕ “УЧЕБНОГО КОМПИЛЯТОРА” В ВЫПОЛНЕНИИ Л/Р №1
Грамматика, обрабатываемая “Учебным компилятором”, должна отвечать следующим требованиям написания:
НТ-символы заключаются в угловые скобки.
Для отделения левой части правил от правой используется группа символов “-”.
Альтернативы правых частей правил разделяются знаком “|”.
Каждое правило грамматики заканчивается символом “%”. Если правило имеет большое количество альтернатив и их неудобно размещать в одной строке, то текст между началом правила и знаком “%” воспринимается как одно правило, сколько бы строк он ни занимал.
В последнем правиле вместо “%” используется “#”, как символ окончания грамматики.
Символы грамматики ( Т и НТ ), управляющие знаки (“%”,”|”,“#”, “-”) отделяются друг от друга пробелом.
Пустое правило изображается двумя пробелами подряд.
Нельзя дважды определять один и тот же НТ-символ.
НТ-символ должен быть определен только после того, как он встретился в правой части какого-либо правила.
Порядок следования правил в грамматике отвечает порядку построения левых выводов: после записи какого-либо правила грамматики следующим должен открываться самый левый НТ-символ предыдущего правила и т.д.
Пример:
block - <var-list> ; <operator-list> %
<var-list> -> var <sp-perem> %
<sp-perem>-> <perem> | <sp-perem> ; <perem> %
. . . .
4. ПОРЯДОК РАБОТЫ В “УЧЕБНОМ КОМПИЛЯТОРЕ”
Ввести текст грамматике в редакторе “Учебного компилятора”.
Обработать созданную грамматику в режиме Проверки грамматики.
При отсутствии ошибок перейти к этапу Построения выводов.
Проверить правильность грамматики, построив выводы в Ручном режиме. Записать несколько выводов.
5.Содержание отчета
Отчет по лабораторной работе должен содержать следующие сведения:
цель работы;
вариант задания;
листинг грамматики;
листинг построенных выводов.
6. Контрольные вопросы
Что такое формальный язык? Каков смысл его создания?
Что такое синтаксис и семантика языка?
Поясните термин «формальная грамматика». Раскройте каждую составляющую формальной грамматики.
Как можно записать структуру языка – его грамматику?
Классификация грамматик.
КС-грамматика.
Как осуществить вывод предложения? Назначение выводов.
Что такое синтаксическое дерево предложения? Смысл его создания.
Литература
Братчиков И.Л. Синтаксис языков программирования.-М.Наука, 1975.-232с.
Цехоня В.И. Основы построения компиляторов: Учебное пособие/ Таганрог. радиотехн. ин-т; Таганрог, 1990. 116с.
Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы построения компиляторов.-М.: Мир, 1979.-654с.