Разработка словесного описания лексики, синтаксиса и семантики заданного варианта языка

Страницы работы

Фрагмент текста работы

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Новосибирский государственный технический университет

Кафедра вычислительной техники

Курсовая работа

по дисциплине «Системное программное обеспечение»

Факультет: АВТ

Группа: АМ-411

Студент: Храмцов А.О.

Вариант: 433324

Преподаватель:    Малявко А.А.

Новосибирск, 2008


Содержание

1. Задание. 3

1.1. Содержание работы.. 3

1.2. Краткое описание учебного языка. 3

2. Введение. 5

3. Описание заданного варианта языка. 6

4. Система регулярных выражений. 7

5. Формальная грамматика. 8

6. Фрагменты управляющих таблиц. 9

7. Поиск в таблицах идентификаторов/констант и пополнение таблиц. 11

8. Преобразование последовательности лексем в постфиксную запись. 13

9. Пример разработанной программы.. 14

Заключение. 16

Список литературы.. 17


1. Задание

1.1. Содержание работы

1.  Разработать словесное описание лексики, синтаксиса и семантики заданного варианта языка. Написать простую тестовую программу (программы), содержащую все заданные элементы языка. Вручную выполнить интерпретацию программы. Эту программу (программы) использовать впоследствии для проверки элементов разрабатываемого транслятора.

2.  Разработать систему регулярных выражений, определяющую лексику заданного варианта языка. Используя пакет WebTransLab, построить автоматную реализацию лексического акцептора. Убедиться в работоспособности акцептора.

3.  Разработать совокупность действий, т.е. расширение системы регулярных выражений, реализующую:

- поиск в таблицах идентификаторов / констант и пополнение таблиц;

- формирование лексем,

и построить лексический анализатор. Проверить его работоспособность.

4.  Разработать формальную грамматику класса LL(1), определяющую синтаксис заданного языка. Используя пакет WebTransLab, построить автоматную реализацию нисходящего синтаксического акцептора.

5.  Разработать формальную грамматику класса не выше, чем LALR(1). Используя пакет WebTransLab, построить автоматную реализацию восходящего синтаксического акцептора.

6.  Разработать расширение синтаксического акцептора (по собственному выбору – нисходящего или восходящего) для преобразования последовательности лексем в постфиксную запись.

7.  Разработать семантический анализатор и преобразователь ПФЗ в последовательность тетрад (или триад).

8.  Разработать интерпретатор последовательности тетрад.

9. Оформить расчетно-пояснительную записку следующего содержания:

-  Данное задание; Оглавление; Введение; Описание заданного варианта языка;

-  По каждому из пунктов 2, 4, 5:

-  система регулярных выражений ( п.2 ) или формальная грамматика ( п.п. 4,5 );

-  фрагменты управляющих таблиц конечных автоматов, построенные WebTransLab’ом или LexLab’ом/SyntLab’ом  (для построения фрагментов использовать выходные файлы построителей автоматов, но не печатать эти файлы целиком!). Пояснить содержание фрагментов, приведенных в записке.

-  примеры результатов работы автоматов с тестовыми примерами; объяснение и анализ результатов.

-  По каждому из пунктов 3, 6, 7, 8:

-  полное описание алгоритма, тексты разработанных программ (выборочно по усмотрению студента; не требуется включать в записку тексты всех программ).

-  примеры результатов работы компонент транслятора с правильными и ошибочными входными программами; объяснение и анализ результатов.

-  Заключение.

Объем записки не должен превышать 20-30 страниц.

1.2. Краткое описание учебного языка

Учебный язык близок к языкам Java и C#. Любые конструкции, не оговоренные явно в задании, можно заимствовать из этих языков или определять самостоятельно.

Ключевые слова (выделены жирным шрифтом, например: число, строка, данные, …) нечувствительны к регистру. Обозначения:

[  ]             – необязательная часть

              – часть, повторяющаяся произвольное количество раз

< >            – описание конструкции

<Б>|<Ц>|<пБ>|<пЦ>|<пБЦ>     – буква | цифра | последовательность букв | последовательность цифр | последовательность букв и/или цифр

<И>           – <идентификатор>

<В>           – <выражение>

<ЛВ>        – <ЛогическоеВыражение>

<ОБ>        – <ОператорИлиБлок>

<К>           – <константа>

<СК>        – <список констант>

Расшифровка цифр варианта задания:

II.1  Объявления примитивных типов (целое, вещественное, символьное, булево):

Вариант:

1

2

3

4

int[eger]

real

char

bool[ean]

num[ber]

float

char

logic

int[eger]

num[ber]

lit[era]

bit

num[ber]

float

lit[era]

bool[ean]

II.2  Объявления классов и экземпляров

Вариант:

1

2

3

4

Классов

type

obj[ect]

class

data

Экземпляров

new

create

create

new

Похожие материалы

Информация о работе