
- •1. Формальная постановка задачи Задание 10.
- •2. Описание входного языка
- •2.1. Синтаксис входного языка
- •2.2. Описание семантики входного языка
- •3 Описание этапа лексического анализа
- •3.1. Определение типов лексем
- •Определение синтаксиса лексем.
- •Построение диаграммы лексического анализатора.
- •Функции лексического анализатора
- •Описание этапа синтаксического анализа.
- •4.1. Построение кс-грамматики входного языка.
- •Разбиение исходной грамматики на подграмматики.
- •Описание промежуточного языка.
- •4.4. Неформальное описание перевода.
- •4.5. Посторенние атрибутной транслирующей грамматики.
- •4.6. Построение атрибутного дмп-процессора.
- •4.7. Тестирование атрибутного дмп-процессора
4.6. Построение атрибутного дмп-процессора.
Основная подграмматика.
Функция F
Функция G
Подграмматика выражений.
Функция F
Функция G
Подграмматика логических выражений.
Функция F
Функция G
Подграмматика операторов.
Функция F
Функция G
Подграмматика типов.
Функция F
Функция G
Подграмматика переменных.
Функция F
Функция G
4.7. Тестирование атрибутного дмп-процессора
Тестирование атрибутного ДМП-процессора заключается в моделировании его работы. Для простых языковых конструкций, когда длина текста и их число невелики, а тестирование выполняется отдельно для каждой конструкции, начиная с простейших, работа эта не только необходима, но и реально выполнима.
Результаты тестирования ДМП-процессора рекомендуется описывать при помощи конфигураций, форма которых зависит от применяемого метода синтаксического анализа.
void main()
{ int a;
a=5;
cout >> a;
}
Магазин |
Входная цепочка |
Выход (тетрады) |
|||||||||||||||||||||
|
void main() { int a; a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
{ int a; a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
int a; a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
a; a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
a=5; cout >> a; }
|
|
|||||||||||||||||||||
|
cout >> a; }
|
|
|||||||||||||||||||||
|
cout >> a; }
|
|
|||||||||||||||||||||
|
cout >> a; }
|
|
|||||||||||||||||||||
|
Cout >> a; }
|
|
|||||||||||||||||||||
|
}
|
|
|||||||||||||||||||||
|
} |
|
|||||||||||||||||||||
|
} |
|
|||||||||||||||||||||
|
} |
|
|||||||||||||||||||||
|
}
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
Выводы
В ходе выполнения данной курсовой работы нами разработан некий язык программирования, являющийся подмножеством языка С. Мы научились задавать и описывать синтаксис и семантику рассматриваемого языка, получили первичные навыки по проектированию лексических анализаторов и построению транслирующих грамматик. Познакомились с основными методами транслирования и получили навыки по проектированию ДМП-процессоров заданной конфигурации.
Список литературы
|
|
|||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|