Книга: Системное программное обеспечение. Лабораторный практикум
Грамматика входного языка
Грамматика входного языка
Описанный выше входной язык может быть построен с помощью КС-грамматики G({if,then,else,a,=,or,xor,and,(,),},{S,F,E,D,C},P,S) с правилами Р:
S ? F;
F ? if E then T else F | if E then F | a:= E
T ? if E then T else T | a:= E
E ? E or D | E xor D | D
D ? D and С | С
С ? a | (E)
Описание грамматики построено в форме Бэкуса—Наура. Жирным шрифтом в грамматике и в правилах выделены терминальные символы.
Выбранный в качестве примера язык и задающая его грамматика не совпадают ни с одним из предложенных выше вариантов. С другой стороны, на этом примере можно проиллюстрировать многие особенности построения лексического, а впоследствии – и синтаксического распознавателя, присущие различным вариантам. Он содержит как условные операторы, связанные с передачей управления в то или иное место исходной программы, так и линейные операции в форме вычисления логических выражений. Поэтому данный пример выбран в качестве иллюстрации для лабораторной работы № 2, а позже будет использоваться также в лабораторных работах № 3 и 4.
- Реализация языка SQL
- Дальнейшее развитие языка SQL
- 1. Оператор Select – базовый оператор языка структурированных запросов
- Компилятор языка С
- 13. Лекция: Интеграция Python с другими языками программирования.
- Синтаксис языка Bourne shell
- Джон Маккарти Отец искусственного интеллекта, автор языка LISP
- Функция MsgBox языка VBScript
- Два языка внутри одного задания (использование функции InputBox языка VBScript в сценариях JScript)
- ДОСТОИНСТВА ЯЗЫКА СИ
- 3. Лекция: Лексика языка
- 15. Библиотека языка Си и файлы ввода-вывода