Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчёт САПР

.docx
Скачиваний:
17
Добавлен:
15.06.2014
Размер:
17.75 Кб
Скачать

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

ГОУ ВПО «ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра «Системы автоматизированного проектирования»

ОТЧЁТ

по дисциплине «Лингвистическое обеспечение систем автоматизированного проектирования»

Тема: Проектирование лексического анализатора

Принял:

И. В. Милютина

_______________________________ подпись, дата

Выполнил:

студент гр. ИВТ-338 Д.В. Визигин

_______________________________

подпись, дата

Омск 2011

Задание

Входной язык содержит логические выражения разделённые символом точка с запятой. Логические выражения состоят из идентификаторов, констант true и false, знака присваивания (:=), знаков операций or, xor, and, not и круглых скобок.

Введение

Компилятор – это не что иное как программа, написанная на нектором языке, для которой входной информацией служит исходная программа, а результатом является эквивалентная ей объектная программа.

Первая стадия работы компилятора называется лексическим анализом, а программа её реализующая, лексическим анализатором (ЛА). На вход лексического анализатора подаётся последовательность символов входного языка, которые называют лексическими еденицами (лексемами). Примерами лексических едениц являются идентификаторы, числа, символы операций, служебные слова и т.д. ЛА преобразует исходный текст, заменяя лексические еденицы их внутренним представлением – лексемами. Лексема может включать информацию о классе лексической еденицы и её значении.

Функции, выполняемые лексическим анализатором, и состав лексем, которые он выделяет в тексте исходной программы, могут меняться в зависимости от версии компилятора. В основном лексические анализаторы выполняют исключение из текста исходной программы комментариев и незначащих пробелов, а также выделение лексем следующих типов: идентификаторов, строковых, символьных и числовых констант, ключевых слов входного языка.

В простейшем случае фазы лексического и синтаксического анализа могут выполняться компилятором последовательно. Но для многих языков программирования, на этапе лексического анализа информации может быть недостаточно для однозначного определения типа и границ очередной лексемы. Поэтому лексический и синтаксический анализаторы – это взаимосвязанные части.

Составление правил анализа лексем в форме Бэкуса-Наура.

Для составления правил анализа лексем данного варианта сначала необходимо определить общую структуру недетерминированного автомата и его объекты. Структура любого недетерминированного автомата является совокупностью пятёрки объектов:

, где

– конечное множество состояний автомата;

– конечное множество допустимых входных символов автомата;

– заданное отображение множества во множество ;

начальное состояние автомата

множество заключительных состояний автомата

Конечный недетерминированный автомат этого варианта языка будет выглядеть следующим образом:

;

.. – в данном случае a..z, A..Z, 0..9, _

.. – в данном случае недопустимые символы в идентификаторах (%, №, !, ? и т. д.)

Соседние файлы в предмете Разработка САПР