Отчёт САПР
.docxФедеральное агентство по образованию
ГОУ ВПО «ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра «Системы автоматизированного проектирования»
ОТЧЁТ
по дисциплине «Лингвистическое обеспечение систем автоматизированного проектирования»
Тема: Проектирование лексического анализатора
Принял:
И. В. Милютина
_______________________________ подпись, дата
Выполнил:
студент гр. ИВТ-338 Д.В. Визигин
_______________________________
подпись, дата
Омск 2011
Задание
Входной язык содержит логические выражения разделённые символом точка с запятой. Логические выражения состоят из идентификаторов, констант true и false, знака присваивания (:=), знаков операций or, xor, and, not и круглых скобок.
Введение
Компилятор – это не что иное как программа, написанная на нектором языке, для которой входной информацией служит исходная программа, а результатом является эквивалентная ей объектная программа.
Первая стадия работы компилятора называется лексическим анализом, а программа её реализующая, лексическим анализатором (ЛА). На вход лексического анализатора подаётся последовательность символов входного языка, которые называют лексическими еденицами (лексемами). Примерами лексических едениц являются идентификаторы, числа, символы операций, служебные слова и т.д. ЛА преобразует исходный текст, заменяя лексические еденицы их внутренним представлением – лексемами. Лексема может включать информацию о классе лексической еденицы и её значении.
Функции, выполняемые лексическим анализатором, и состав лексем, которые он выделяет в тексте исходной программы, могут меняться в зависимости от версии компилятора. В основном лексические анализаторы выполняют исключение из текста исходной программы комментариев и незначащих пробелов, а также выделение лексем следующих типов: идентификаторов, строковых, символьных и числовых констант, ключевых слов входного языка.
В простейшем случае фазы лексического и синтаксического анализа могут выполняться компилятором последовательно. Но для многих языков программирования, на этапе лексического анализа информации может быть недостаточно для однозначного определения типа и границ очередной лексемы. Поэтому лексический и синтаксический анализаторы – это взаимосвязанные части.
Составление правил анализа лексем в форме Бэкуса-Наура.
Для составления правил анализа лексем данного варианта сначала необходимо определить общую структуру недетерминированного автомата и его объекты. Структура любого недетерминированного автомата является совокупностью пятёрки объектов:
, где
– конечное множество состояний автомата;
– конечное множество допустимых входных символов автомата;
– заданное отображение множества во множество ;
– начальное состояние автомата
– множество заключительных состояний автомата
Конечный недетерминированный автомат этого варианта языка будет выглядеть следующим образом:
;
.. – в данном случае a..z, A..Z, 0..9, _
.. – в данном случае недопустимые символы в идентификаторах (%, №, !, ? и т. д.)