- •Лабораторные работы
- •1. Порядок выполнения работы.
- •2. Содержание отчета.
- •Лабораторная работа № 1. Лабораторная работа № 1.1. Создание каркаса транслятора.
- •Лабораторная работа № 2 Лабораторная работа № 1.2. Разбор исходного файла.
- •Лабораторная работа № 3.
- •1. Порядок выполнения работы.
- •2. Содержание отчета.
- •Лабораторная работа № 5. Лабораторная работа №3.1. Синтаксический анализатор.
- •Лабораторная работа № 6. Лабораторная работа №3.2. Синтаксический анализатор.
- •Лабораторная работа № 7. Лабораторная работа №3.3. Синтаксический анализатор.
- •1. Порядок выполнения работы.
- •2. Содержание отчета.
- •Лабораторная работа №5. Разработка генератора кода
- •1. Порядок выполнения работы.
- •2. Теоретическая часть
- •Практическая часть.
- •Лабораторная работа № 9. Генератор кода 5.2.
- •4. Содержание отчета
- •5. Содержание отчета
- •Лабораторная работа № 11. Синтаксический анализатор.
- •Лабораторная работа №12. Генератор кода 5.3.
- •Варианты к лабораторным работам
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Курсовой проект
- •Оформление
- •Пустые строки
- •Пробелы в строке
- •Локальные переменные
- •Комментарии
- •Инструкции (statements)
- •Оформление if, if-else, if-else if-else
- •Оформление for, foreach
- •Оформление while, do-while
- •Оформление switch
- •Оформление try-catch
- •Указания по оформлению псевдокода
Вариант 13
<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>
<Описание вычислений> ::= <Список присваиваний> <Объявление переменных> ::= Int <Список переменных> <Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний> ::= <Присваивание> | <Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> = <Выражение>
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение>
<Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "-"
<Бин.оп.> ::= "-" | "+" | "*" | "/"
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> <Идент> | <Буква>
<Const> ::= <Цифра> <Const> | <Цифра> <Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания
Вариант 14
<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>
<Описание вычислений> ::= Begin <Список присваиваний> End
<Объявление переменных> ::= Int <Список переменных> ;
<Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний>::= <Присваивание> |
<Присваивание> <Список присваиваний>
<Присваивание> ::= <Идент> := <Выражение> ;
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "-"
<Бин.оп.> ::= "-" | "+" | "*" | "/"
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> | <Буква><Идент>
<Const> ::= <Цифра> <Const> | <Цифра>
<Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания
Вариант 15
<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>
<Описание вычислений> ::= Begin <Список присваиваний> End
<Объявление переменных> ::= Logical <Список переменных>
<Список переменных> ::= <Идент> | <Идент> , <Список переменных>
<Список присваиваний>::= <Присваивание> |
<Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> := <Выражение> ;
<Выражение> ::= <Ун.оп.><Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "!"
<Бин.оп.> ::= "&" | "|" | "^"
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> <Идент> | <Буква>
<Const> ::= 0 | 1
<Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания
Вариант 16
<Программа> ::= <Объявление переменных> <Описание вычислений><Оператор печати>
<Описание вычислений> ::= Begin <Список присваиваний> End
<Объявление переменных> ::= Boolean <Список переменных> :
<Список переменных> ::= <Идент> | <Идент> , <Список переменных>
<Список присваиваний>::= <Присваивание> |
<Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> = <Выражение> ;
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= ".NOT."
<Бин.оп.> ::= ".AND." | ".OR." | ".XOR."
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> <Идент> | <Буква>
<Const> ::= 0 | 1
<Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания
Общие обозначения нетерминалов:
S=<Программа>
D= <Объявление переменных>
F= <Описание вычислений>
P= <Оператор печати>
V= <Список переменных>
I=<Идент>
G= <Список присваиваний>
A=<Присваивание>
E=<Выражение>
H=<Подвыражение>
O=<Операнд>
C=<Const>
N=<Цифра>
Общие обозначения терминалов – алфавит.
U= <Ун.оп.> =-|.NOT.
Обозначение альтернативного множества терминалов:
L=<Буква>
B=<Бин.оп.>
