Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции над языками




Строки и языки

Определение лексем

Вопросы

1. Что представляет собой входной алфавит следующих языков программирования: Pascal, C, Lisp?

2. Какие существуют соглашения по использованию пробелов в каждом из языков, указанных в п.1?

3. Какую роль выполняет лексический анализ в процессе компиляции?

4. Как могут быть связаны между собой лексический и синтаксический анализ?

5. Почему большинство современных компиляторов используют фазу лексического анализа, при том, что она является необязательной?

В определении лексем важную роль играют регулярные выражения. Каждый шаблон соответствует множеству строк, так что регулярные выражения можно рассматривать как имена таких множеств.

 

Алфавит, или класс символов, обозначает любое конечное множество символов. Типичным примером символов могут служить буквы или алфавитно-цифровые символы. Множество {0,1} представляет собой бинарный алфавит. ASCII является примером компьютерного алфавита.

Строка над некоторым алфавитом – это конечная последовательность символов, взятых из алфавита. В теории языков термин предложение и слово часто используются как символы термина “строка”. Длина строки s, обычно обозначаемая как │ s │, равна количеству символов в строке. Например, длина строки banana равна шести.

Пустая строка, обозначаемая как λ (или ε), представляет собой специальную строку нулевой длины.

Язык обозначает произвольное множество строк над некоторым фиксированным алфавитом. Например, {λ} ­- множество, содержащее только пустую строку.

 

Имеется ряд важных операций, выполняемых над языками. С точки зрения лексического анализа особое значение имеют объединение, конкатенация и замыкание (рис. 6). Можно также обобщить оператор возведения в степень для языка, определив L 0 как {ε}, а L i – как L i-1 L. Таким образом, L i представляет собой L, конкатенированный с самим собой i -1 раз [3].

 

Операция Определение
Объединение L и M – L M L M {s | sЄL или sЄМ}
Конкатенация L и M – LM L M {s | sЄL и sЄМ}
Замыкание Клини или итерация L – L* L* - обозначает “нуль или более конкатенаций L”
Позитивное замыкание L – L+ L+ - обозначает “одна или более конкатенаций L”

 

Рис. 6. Определения операций над языками




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 968; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.