- •Пояснительная записка к курсовой работе (вар16)
- •2008 Оглавление
- •Задание
- •Описание синтаксиса языка в форме Бэкуса-Наура Teрминальные символы:
- •Программа
- •Оператор ввода
- •Оператор вывода
- •Оператор безусловного перехода
- •Оператор условного перехода
- •Оператор Цикла
- •Арифметические выражения
- •Переменная
- •Оператор присваивания
- •Объявления переменных, констант и типов
- •Операции входного языка и их приоритет
- •Перечисление лексем
- •Синтаксический анализ и перевод во внутреннюю форму
- •Кс-грамматика входного языка
- •Основная грамматика
- •Подграмматика составного оператора
- •Подграмматика оператора
- •Подграмматика оператора_вывода
- •Подграмматика для операторов
- •Подграмматика объявлений
- •Подграмматика объявления констант
- •Подграмматика арифметических выражений
- •Подграмматика переменной
- •Описание промежуточного языка.
- •Спецификация тетрад
- •Описание перевода (постфиксная s – атрибутная транслирующая грамматика) каждой конструкции входного языка
- •Основная грамматика
- •Подграмматика для операторов
- •Подграмматика объявления констант
- •Связь между дмп-процессорами и подграмматиками
- •Пример перехода от основной грамматики к подграмматике составного оператора Управляющая таблица основной грамматики
- •Управляющая таблица подграмматики составного оператора
- •S– атрибутный дмп процессор
- •Пример атрибутного перевода для арифметических выражений
- •Управляющая таблица подграмматики оператора
- •Управляющая таблица подграмматики оператора вывода
- •Реализация компилятора
- •Генерация ассемблерного кода
Спецификация тетрад
|
Тетрада |
Выполняемые действия | |||
|
КОП |
ОП1 |
ОП2 |
РЕЗ | |
|
ADDI |
A1 |
A2 |
R |
Сложение целых чисел по адресам A1иA2, результат сохраняется по адресуR |
|
ADDF |
A1 |
A2 |
R |
Сложение вещественных чисел по адресам A1иA2, результат сохраняется по адресуR |
|
ADDM |
A1 |
A2 |
R |
Сложение матриц по адресам A1иA2. Результат сохраняется по адресуR |
|
SUBI |
A1 |
A2 |
R |
Из целого числа по адресу A1вычитается число по адресуA2, результат сохраняется по адресуR |
|
SUBF |
A1 |
A2 |
R |
Из вещественного числа по адресу A1вычитается вещественное число по адресуA2, результат сохраняется по адресуR |
|
SUBM |
A1 |
A2 |
R |
Из матрицы по адресу A1вычитается матрица по адресуA2, результат сохраняется по адресуR |
|
MULI |
A1 |
A2 |
R |
Умножение целых чисел по адресам A1иA2, результат сохраняется по адресуR |
|
MULF |
A1 |
A2 |
R |
Умножение вещественных чисел по адресам A1иA2, результат сохраняется по адресуR |
|
MULM |
A1 |
A2 |
R |
Перемножение двух матриц по адресам A1иA2, результат сохраняется по адресуR |
|
DIVI |
A1 |
A2 |
R |
Деление целого числа по адресу A1на целое число по адресуA2, результат сохраняется по адресуR |
|
DIVF |
A1 |
A2 |
R |
Деление вещественного числа по адресу A1на вещественное число по адресуA2, результат сохраняется по адресуR |
|
SETI |
A1 |
A2 |
A1 |
Переменной типа intпо адресу A1присваивается значение по адресу A2 |
|
SETF |
|
|
|
Переменной типа floatпо адресу A1присваивается значение по адресу A2 |
|
SETM |
A1 |
A2 |
A1 |
Переменной типа fmatrпо адресу A1присваивается значение по адресу A2 |
|
LI |
A1 |
A2 |
R |
Операция отношения «меньше» для целых чисел. Результат – число 0(ложь) или 1(истина) типа int, сохраняется по адресуR |
|
LF |
A1 |
A2 |
R |
Операция отношения «меньше» для вещ. чисел. |
|
LEI |
A1 |
A2 |
R |
Операция отношения «меньше и равно» для целых чисел. |
|
LEF |
A1 |
A2 |
R |
Операция отношения «меньше и равно» для вещ. чисел. |
|
EEI |
A1 |
A2 |
R |
Операция отношения «равно» для целых чисел. |
|
EEF |
A1 |
A2 |
R |
Операция отношения «равно» для вещественных чисел. |
|
NEI |
A1 |
A2 |
R |
Операция отношения «не равно» для целых чисел |
|
NEF |
A1 |
A2 |
R |
Операция отношения «не равно» для вещественных чисел |
|
JMP |
A1 |
_ |
_ |
Безусловный переход на тетраду, с номером A1 |
|
JMPF |
A1 |
A2 |
_ |
Если значение по адресу А1равно «ложь», то управление передается тетраде с номеромA2. |
|
DET |
A1 |
_ |
R |
Вычисление определителя матрицы, по адресу A1. Результат – типfloat, сохраняется по адресуR |
|
TRANSP |
A1 |
_ |
R |
Транспонирование матрицы по адресу A1, результат сохраняется по адресуR |
|
PRINTI |
A1 |
_ |
_ |
Вывод на экран значения типа intпо адресу А1. |
|
PRINTF |
A1 |
_ |
_ |
Вывод на экран значения типа floatпо адресу А1. |
|
SCANI |
A1 |
_ |
_ |
Ввод целого числа в переменную по адресу А1 |
|
SCANF |
A1 |
_ |
_ |
Ввод вещественного числа в переменную по адресу А1 |
|
FTYPE |
A1 |
_ |
R |
Преобразование числа типа intпо адресуA1к типуfloat. Новая переменнаяcохраняется по адресуR |
На этапе синтаксического анализа адреса заменяются ссылкой на таблицы переменных и констант, а номера тетрад – ссылкой на таблицу меток.
