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

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

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

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

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

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

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

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

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

Описание: emblem_NSTU_black

Пояснительная записка к курсовой работе

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

Факультет: АВТ                                                                         Преподаватель:

Группа:       АМ-710                                                                   Малявко А.А.

Вариант:     3243311

Студент:     Беззубов М.С.

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


Содержание

1.     Цель работы.. 3

2.     Задание. 3

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

2.2.     Краткое описание учебного языка, варианты заданий. 4

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

4.     Пример тестовой программы.. 7

5.     Правила лексики.. 8

6.     Формальная грамматика.. 10

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

8.     Разработка лексического и синтаксического анализаторов.. 15

9.     Результаты проверки тестовой программы.. 17

10.  Заключение. 18

11.  Литература.. 19


1.  Цель работы

·  Практическое применение теоретических основ проектирования трансляторов с языков программирования.

·  Освоение средств автоматизации построения трансляторов.

·  Разработка элементов транслятора для учебного языка.

2.  Задание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

o  фрагменты управляющих таблиц конечных автоматов, построенные WebTransLab’ом. Пояснить содержание фрагментов, приведенных в записке.

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

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

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

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

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

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

2.2.    Краткое описание учебного языка, варианты заданий.

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

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

Обозначения:

[]

Необязательная часть

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

< >

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

<Б>

буква

<Ц>

цифра

<пБ>

последовательность букв

<пЦ>

последовательность цифр

<пБЦ>

последовательность букв и/или цифр или пусто

<И>

<имя объекта>

<В>

<выражение>

<ЛВ>

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

<О>

< одиночный оператор >

<ОБ>

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

<К>

<константа>

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

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