- •Пояснительная записка к курсовой работе (вар16)
- •2008 Оглавление
- •Задание
- •Описание синтаксиса языка в форме Бэкуса-Наура Teрминальные символы:
- •Программа
- •Оператор ввода
- •Оператор вывода
- •Оператор безусловного перехода
- •Оператор условного перехода
- •Оператор Цикла
- •Арифметические выражения
- •Переменная
- •Оператор присваивания
- •Объявления переменных, констант и типов
- •Операции входного языка и их приоритет
- •Перечисление лексем
- •Синтаксический анализ и перевод во внутреннюю форму
- •Кс-грамматика входного языка
- •Основная грамматика
- •Подграмматика составного оператора
- •Подграмматика оператора
- •Подграмматика оператора_вывода
- •Подграмматика для операторов
- •Подграмматика объявлений
- •Подграмматика объявления констант
- •Подграмматика арифметических выражений
- •Подграмматика переменной
- •Описание промежуточного языка.
- •Спецификация тетрад
- •Описание перевода (постфиксная s – атрибутная транслирующая грамматика) каждой конструкции входного языка
- •Основная грамматика
- •Подграмматика для операторов
- •Подграмматика объявления констант
- •Связь между дмп-процессорами и подграмматиками
- •Пример перехода от основной грамматики к подграмматике составного оператора Управляющая таблица основной грамматики
- •Управляющая таблица подграмматики составного оператора
- •S– атрибутный дмп процессор
- •Пример атрибутного перевода для арифметических выражений
- •Управляющая таблица подграмматики оператора
- •Управляющая таблица подграмматики оператора вывода
- •Реализация компилятора
- •Генерация ассемблерного кода
Министерство общего и профессионального образования РФ
Санкт-Петербургский Электротехнический Университет «ЛЭТИ»
Кафедра МОЭВМ
Дисциплина: РЯП
Пояснительная записка к курсовой работе (вар16)
Выполнили студенты:
Бахвалова Ю.С.
Крупицкий М.В.
Чепас А.С.
Группа: 3305
Преподователь: Самойленко В.П.
Санкт-Петербург
2008 Оглавление
Оглавление 2
Задание 3
Описание синтаксиса языка в форме Бэкуса-Наура 4
Teрминальные символы: 4
Программа 4
Оператор ввода 4
Оператор вывода 5
Оператор безусловного перехода 5
Оператор условного перехода 5
Оператор Цикла 5
Арифметические выражения 5
Переменная 6
Оператор присваивания 7
Объявления переменных, констант и типов 7
Операции входного языка и их приоритет 7
Типы языка 7
Приоритеты операций: 7
Лексический анализ 8
Классы входных литер 8
Перечисление лексем 8
Синтаксический анализ и перевод во внутреннюю форму 9
Таблица идентификаторов (3) 9
Таблица меток (7) 10
Таблица переменных (6) 10
КС-грамматика входного языка 10
Основная грамматика 10
Подграмматика составного оператора 10
Подграмматика оператора 11
Подграмматика оператора_вывода 11
Подграмматика для операторов 11
Подграмматика объявлений 12
Подграмматика объявления констант 12
Подграмматика арифметических выражений 13
Подграмматика переменной 13
Описание промежуточного языка. 13
Спецификация тетрад 14
Описание перевода (постфиксная S – атрибутная транслирующая грамматика) каждой конструкции входного языка 15
Связь между ДМП-процессорами и подграмматиками 25
Пример перехода от основной грамматики к подграмматике составного оператора 25
S – атрибутный ДМП процессор 28
Пример атрибутного перевода для арифметических выражений 29
Реализация компилятора 35
Генерация ассемблерного кода 37
Пример 38
Задание
Разработать язык программирования, являющийся подмножеством языка C, и описать перевод основных конструкций этого языка в последовательность тетрад.
Объектами языка являются переменные, константы и массивы целого и вещественного типов и вещественные матрицы.
Язык должен допускать использование арифметических выражений, в состав которых могут входить константы и простые переменные целого и вещественного типов, элементы матриц, круглые скобки и знаки операций: сложение, вычитание, умножение и деление. Приоритет операций – обычный. Допускается перегрузка операций.
В языке должны быть определены следующие операции над матрицами:
вычисление определителя матрицы;
транспонирование матрицы;
сумма матриц;
произведение матриц.
Состав операторов:
оператор присваивания;
оператор ввода;
оператор вывода;
составной оператор;
оператор безусловного перехода;
условный оператор, условие в котором задается отношением:
оператор цикла с параметром.
Метод синтаксического анализа – алгоритм «перенос-свертка» для грамматик слабого предшествования.
Эквивалентность типов – структурная.
Описание синтаксиса языка в форме Бэкуса-Наура Teрминальные символы:
id – идентификатор (последовательность из символов латинского алфавита, цифр, знака подчеркивания “_”, начинающаяся с буквы)
<идентификатор> = id
<целое_число> = num
<вещественное число> = fnum
<идентификатор>::= <буква><продолжение>
<продолжение>::= <продолжение><буква> | <продолжение><цифра> | <буква> | <цифра>
<буква>::= A..Z a..z _
<цифра>::= 0..9
Максимальный размер идентификатора 32
<целое_число>::= + <окончание> | - <окончание> | <окончание>
<окончание>::= <окончание> <цифра> | <цифра>
<вещественное_число>::= <целое_число> . <дробная_часть> | . <дробная_часть>
| <целое_число> .
<дробная_часть>::= <окончание> | <окончание> e <целое_число>
| <окончание> E <целое_число>