- •Расчетно-графическая работа
- •Оглавление
- •Введение
- •Проектирование компилятора
- •Общие сведения
- •Грамматика языка
- •Разработка интерфейса
- •Реализация компилятора
- •2.1. Реализация лексического блока
- •2.2. Реализация синтаксического блока
- •2.3. Реализация генератора кода
- •2.4. Реализация р-ичной библиотеки
- •Тестирование
- •Заключение
- •Список использованной литературы
-
Грамматика языка
<программа> <заголовок> <тело> <окончание>
<заголовок> PROGRAM | PROGRAM <имя программы>;
<имя программы> l | l <последовательность букв и цифр>
<последовательность букв и цифр> l | l <последовательность букв и цифр> |
d | d <последовательность букв и цифр>
<тело> <выполняемые операторы>
<оператор объявления>-> <список имен> INTEGER| <список имен>;<оператор объявления> INTEGER | <список имен> REAL >| <список имен>;<оператор объявления> REAL
<список имен> <идентификатор> | <идентификатор>, < список имен >
<идентификатор> l | l <последовательность букв и цифр>
<константа> <целая> | <вещественная>
<целая> d | d <последовательность шестнадцатеричных цифр>
<последовательность шестнадцатеричных цифр> x|x < последовательность шестнадцатеричных цифр>
<вещественная> <целая>.<целая>
<шестнадцатеричная цифра>->A|B|C|D|E|F
<выполняемые операторы> <оператор задания системы счисления> |
<оператор задания системы счисления> <выполняемые операторы> |
<оператор ввода> | <оператор ввода> <выполняемые операторы> |
<оператор присваивания> | <оператор присваивания> <выполняемые операторы> |
<оператор вывода> | <оператор вывода> <выполняемые операторы>
<оператор задания системы счисления> PBASE (<основание системы счисления>);
<основание системы счисления> 2|3|4|5|6|7|8|9|10|11|12|13|14|15|16
<оператор ввода> READ (<список ввода>);
<список ввода> <идентификатор> | < идентификатор>, <список ввода>
<оператор присваивания> -> <идентификатор> = <выражение>;
<expr> -> <litem>OR{G2}<litem2>|<litem>
<litem2> -> <litem>{G3}OR{G2}<litem2>|<litem>{G3}
<litem> -> <lfactor>AND{G2}< lfactor 2>|< lfactor >
< lfactor2> -> < lfactor >{G3}AND{G2}< lfactor2>|<lfactor>{G3}
<lfactor> -> <arithm>={G2}<arithm>{G3}|<arithm>>{G2}<arithm>{G3}| <arithm>>={G2}<arithm>{G3}|<arithm><{G2}<arithm>{G3}|<arithm><={G2}<arithm>{G3}|<arithm><>{G2}<arithm> {G3}|<arithm>{G3}
<arithm> -> <item>-{G2}< item2>| < item>
<item2> -> < item>{G3}-{G2} <item2>|<item>{G3}
<item> -> <prim>*{G2}<factor2> | <prim>/{G2}<factor2> |<prim>
<factor2> -> < prim >{G3}*{G2} <factor2>| < prim >{G3}/{G2} <factor2>| <prim >{G3}
<prim> -> -{G2}<expr>{G3} | NOT{G2}<expr>{G3} | (<expr>){G3} | DIV{G2}<expr>{G3}| MOD{G2}<expr>,<expr>{G3}| Int{G2}<expr>{G3}| <идентификатор>|<константа>{G1}
<оператор вывода> WRITE (<список вывода>);
<список вывода> <идентификатор> | < идентификатор >, <список вывода>
<окончание> END
-
Разработка интерфейса
Первая форма – текстовый редактор.
При нажатии вкладки «Файл» в главном меню, можно:
-
создать новый документ;
-
открыть документ;
-
сохранить документ.
При выходе без сохранения программа попросит сохранить документ.
Каждую операцию можем вызвать с помощью клавиатуры:
-
Создать – Ctrl+N;
-
открыть – Ctrl+O;
-
сохранить – Ctrl+S;
-
сохранить как – Ctrl+Alt+S;
Во вкладке «Редактирование», можно:
-
вырезать;
-
копировать;
-
вставить.
Каждую операцию можно выполнить с помощью горячих клавиш:
-
вырезать – Ctrl+X;
-
копировать – Ctrl+C;
-
вставить – Ctrl+V;
Вкладка «Компилятор» отвечает за запуск компонентов и самого компилятора:
-
лексический блок – F6;
-
синтаксический блок – F7;
-
генератор кода – F8;
-
запуск программы – F9.
Вкладка «Помощь» содержит справочный материал – Ctrl+H .
Форма№3 «LEX» выводит результат работы лексического блока.
Форма№4 «SNT» выводит результат работы синтаксического блока.
Форма№5 «GEN» выводит результат работы генератора кода