- •Комитет образования рф
- •Отчёт по курсовой работе
- •Языки программирования и методы трансляции
- •1. Описание входного языка.
- •1.2. Формализм для описания синтаксиса.
- •1.3.4. Идентификаторы.
- •1.3.5. Константы.
- •1.4.2. Выражения.
- •1.4.3. Описания.
- •Приложение 1. Полный синтаксис языка в форме Бэкуса-Наура.
- •2. Описание лексического анализатора.
- •2.1. Классы литер.
- •2.2. Классы лексем.
- •2. Описание синтаксического анализатора.
- •3.1. Входная грамматика анализатора.
- •Множество правил входной грамматики анализатора.
- •Атрибутная грамматика.
- •Семантические процедуры для операционных символов.
- •2) Атрибутная грамматика для подграмматики описаний.
- •Атрибутная грамматика.
- •Семантические процедуры для операционных символов.
- •Основная грамматика
- •Атрибутная грамматика.
- •Семантические процедуры для операционных символов.
Комитет образования рф
Санкт-Петербургский Государственный Электротехнический Университет
кафедра математического обеспечения и применения ЭВМ
Отчёт по курсовой работе
по дисциплине
Языки программирования и методы трансляции
Сдал студент гр.5342 ИсаченкоА.M.
Преподаватель Семенова О.Н.
Санкт-Петербург, 1997 год
1. Описание входного языка.
1.1. Общие сведения.
В курсовой работе описывается разработка компилятора для языка, являющегося подмножеством языка Си. Язык обеспечивает работу с переменными и константами целого и вещественного типов и векторами с вещественными компонентами, а также арифметическими выражениями над данными целого, вещественного и векторного типов.
Состав операторов языка :
оператор присваивания;
оператор ввода;
оператор вывода;
оператор безусловного перехода;
условный оператор, условие в котором задается отношением;
оператор цикла for;
составной оператор.
В языке должны быть определены следующие операции над векторами:
определение длины вектора;
сумма векторов;
скалярное произведение векторов;
умножение константы или простой переменной целого или вещественного типов на вектор;
1.2. Формализм для описания синтаксиса.
Синтаксис языка описан с помощью модифицированных форм Бэкуса-Наура:
- металингвистические переменные состоят из строчных букв русского алфавита и знаков подчеркивания; имя каждой переменной взято в <угловые скобки>;
- зарезервированные слова обозначаются словами английского языка, состоящими из строчных латинских букв;
- в [квадратные скобки] заключаются элементы, которые могут отсутствовать;
- повторяющиеся нуль или более раз элементы заключаются в {фигурные скобки};
1.3. Лексика языка.
1.3.1. Терминальные символы языка.
К терминальным символам языка относятся :
26 букв латинского алфавита, строчные и прописные :
A B C ... Y Z a b c ... y z
33 буквы русского алфавита :
А Б В ... Ю Я а б в ... ю я
10 цифр :
0 1 2 3 4 5 6 7 8 9
21 специальный символ :
[ ] { } , . > < = ! + - * / " _ ( ) : & |
символа пробела
символа конца строки.
символа горизонтальной табуляции
символа вертикальной табуляции
1.3.2. Лексемы и соглашения о разделителях.
Текст программы разбивается на лексемы, которыми являются идентификаторы, ключевые слова, целые и вещественные числа, специальные символы
+ - * / ( ) [ ] { } , ; : = > < ! - однолитерные разделители.
а также комбинации специальных символов(двулитерные разделители)
<= знак оператора меньше или равно.
>= знак оператора больше или равно.
== знак оператора равно.
!= знак оператора не равно.
&& знак оператора and
|| знак оператора or.
Комментарии.
Комментарии - любые символы, заключенные в /* */.