Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація компілятора усіченого мови Pascal з використанням технології автоматизації

Реферат Реалізація компілятора усіченого мови Pascal з використанням технології автоматизації





lign="justify"> Лексичний аналізатор необхідно реалізувати вручну - без використання спеціальних засобів типу lex/flex/jlex, і функцій типу scanf.

Лексичний аналізатор повинен видаляти з вхідного рядка прогалини, і передавати синтаксичному аналізатору (парсеру) лексеми по одній. Крім всіх інших лексем він повинен розпізнавати цілі числа. Якщо в ході лексичного розбору була виявлена ??помилка, необхідно видати виразне повідомлення про помилку з вказівкою місця виявлення помилки у вихідному тексті (номер рядка і, бажано, номера стовпчика).


Синтаксичний аналізатор (парсер)


Синтаксичний аналізатор необхідно реалізувати вручну - без використання спеціальних засобів типу yacc/bison/cup. Його потрібно реалізувати як предіктивне синтаксичний аналізатор. На вхід парсера надходять лексеми з виходу сканера, на виході парсера виходить проміжний код. Якщо в ході синтаксичного розбору була виявлена ??помилка, необхідно видати виразне повідомлення про помилку з вказівкою місця виявлення помилки у вихідному тексті (номер рядка і, бажано, номера стовпчика).


Граматика вхідної мови


lt; CompileProgram gt; ::= lt; Vars gt; lt; BeginEndStruct gt;

lt; Vars gt; ::={Define lt; Ім'я змінної gt ;: lt; Тип змінної gt ;;}

lt; Ім'я змінної gt; ::= lt; Буква gt; { lt; Буква gt; | Lt; Цифра gt;}

lt; Буква gt; ::=a | b | c | ... | z | A | B | C | ... | Z

lt; Цифра gt; ::=0 | 1 | 2 | ... | 9

lt; Тип змінної gt; ::= lt; Тип gt; | Lt; Тип gt; [ lt; цифра gt;]

lt; Тип gt; ::=byte | word | integer | char

lt; BeginEndStruct gt; ::=begin lt; CommandVerify gt; end.

lt; CommandVerify gt; ::= lt; Ім'я змінної gt;= lt; ProcedureE gt; | Lt; ProcedureE gt; lt; Знак gt; lt; ProcedureE gt; then lt; CommandVerify gt;

{else lt; CommandVerify gt;} | lt; Ім'я змінної gt;= lt; ProcedureE gt; do lt; CommandVerify gt; | Lt; CommandVerify gt; Until lt; ProcedureE gt; lt; Знак gt; lt; ProcedureE gt; | ( lt; ProcedureE gt;) | WriteWord ( lt; ProcedureE gt;) | ( lt; Символ gt;, Ln)

lt; ProcedureE gt; ::= lt; ProcedureT gt; {+ | - lt; ProcedureT gt;}

lt; ProcedureT gt; ::= lt; ProcedureF gt; {* |/ Lt; ProcedureF gt;}

lt; ProcedureF gt; ::=( lt; ProcedureE gt;) | lt; Цифра gt; | Lt; Ім'я змінної gt; | Wait |

lt; Ім'я змінної gt; [ lt; Цифра gt;]

lt; Знак порівняння gt; :: gt; | Lt; |=

lt; Символ gt; ::={ lt; Буква gt;} | { lt; Цифра gt;} | { lt; Знак gt;}


Технічний проект. Загальні відомості


Проект складається з 3х частин:

Сервер автоматизації

Клієнт автоматизації

Компілятор

Сервер автоматизації запускає компілятор, на вхід якого подає вихідний код програми, отриманої від клієнта.

Після компіляції, отримуємо виконуваний файл в локальному каталозі, з якого була запущена програма.

Структура вхідних і вихідних даних.

На вхід компілятора подається вихідний код програми, написаний на стороні клієнта на мові, що представляє собою підмножина мови Pascal, граматика якого описана в цій пояснювальній записці.

На виході компілятора отримаємо ісполняемий файл.


Алгоритми обробки даних


Алгоритм роботи компілятора:

. Читання компилируемого файлу

. Ініціалізація змінних

. Компілювання

. 1.Чтеніе слова з масиву

. 1.1.Чітаем символ

. 1.2.Запісиваем в рядок символ

. 1.3.Переход на 3.1.1, якщо не пробіл або НЕ коментар.

. 2.Якщо Define

. 2.1.Проверка записи змінної

. 2.2.Запісиваем змінну в таблицю

. 3.Якщо Begin

. 3.1.Расспознаваніе блоку

. 3.1.1.Еслі слово WriteInteger

. 3.1.1.1.Компілірованіе параметра

. 3.1.1.2.Прі помилку вивід повідомлення

. 3.1.1.3.Формірованіе коду

. 3.1.1.4.Переход на 3.3.2.

. 3.1.2.Еслі слово WriteWord

...


Назад | сторінка 2 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка блоку управління стабілізатора змінної напруги
  • Реферат на тему: Розрахунок комутатора змінної напруги
  • Реферат на тему: Розробка стабілізатора змінної напруги
  • Реферат на тему: Контроль якості конденсаторів змінної ємності
  • Реферат на тему: Вимірювальний перетворювач змінної напруги в постійне