- •Лабораторные работы
- •1. Порядок выполнения работы.
- •2. Содержание отчета.
- •Лабораторная работа № 1.1. Создание каркаса транслятора.
- •Лабораторная работа № 1.2. Разбор исходного файла.
- •1. Порядок выполнения работы.
- •2. Содержание отчета.
- •Лабораторная работа №3.1. Синтаксический анализатор.
- •1. Порядок выполнения работы.
- •2. Содержание отчета.
- •Лабораторная работа №5. Разработка генератора кода
- •1. Порядок выполнения работы.
- •2. Теоретическая часть
- •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
- •Указания по оформлению псевдокода
3. Содержание отчета
3.1. Название работы и ее исполнители.
3.2. Цель работы.
3.3. Краткое (по 2-3 предложения) описание процедур (функций) программы генерации кода.
3.4. Листинг программы.
3.5. В случае необходимости, информация о доработке программ лексического и синтаксического анализа.
3.6. Распечатки контрольных примеров и результатов их выполнения.
3.7. Выводы по проделанной работе.
Лабораторным работам
Во всех вариантах все переменные должны быть объявлены до начала вычислений. <Буква> – буква латинского алфавита (a...z). <Цифра> – цифра от 0 до 9.
Вариант 1
<Программа> ::= <Объявление переменных> <Описание вычислений> <Оператор печати>
<Описание вычислений> ::= <Список присваиваний> <Объявление переменных> ::= Var <Список переменных> <Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний> ::= <Присваивание> | <Присваивание> <Список присваиваний>
<Присваивание> ::= <Идент> = <Выражение>
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение>
<Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "-"
<Бин.оп.> ::= "-" | "+" | "*" | "/"
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> <Идент> | <Буква>
<Const> ::= <Цифра> <Const> | <Цифра>
<Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания
Вариант 2
<Программа> ::= <Объявление переменных> <Описание вычислений> <Оператор печати>
<Описание вычислений> ::= Begin <Список присваиваний> End
<Объявление переменных> ::= Var <Список переменных> ;
<Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний>::= <Присваивание> |
<Присваивание> <Список присваиваний>
<Присваивание> ::= <Идент> := <Выражение> ;
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение> <Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "-"
<Бин.оп.> ::= "-" | "+" | "*" | "/"
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> <Идент> | <Буква>
<Const> ::= <Цифра> <Const> | <Цифра>
<Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания
Вариант 3
<Программа> ::= <Объявление переменных> <Описание вычислений> <Оператор печати> <Описание вычислений> ::= [ <Список присваиваний> ] <Объявление переменных> ::= Var <Список переменных> ; <Список переменных> ::= <Идент> | <Идент> , <Список переменных> <Список присваиваний>::= <Присваивание> | <Присваивание> <Список присваиваний> <Присваивание> ::= <Идент> = <Выражение> ;
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение>
<Подвыражение> :: = ( <Выражение> ) | <Операнд> |
< Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "-"
<Бин.оп.> ::= "-" | "+" | "*" | "/"
<Операнд> ::= <Идент> | <Const>
<Идент> ::= <Буква> <Идент> | <Буква>
<Const> ::= <Цифра> <Const> | <Цифра>
<Оператор печати>::=Print <Идент>
На одной строке может быть только объявление переменных или один оператор присваивания