Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Цепочка (слово)

Алфавит (словарь)

Способы определения языков

V. Введение в теорию формальных языков

Описание языков программирования опирается на теорию формальных языков, которая является основой для организации синтаксического анализа и перевода.

Существует два основных способа определения языков:

· механизм порождения (генератор);

· механизм распознавания (распознаватель).

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

Неформально язык L – это множество цепочек конечной длины в алфавите T.

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

При описании грамматики необходимо определить алфавита языка, который задается как набор допустимых – терминальных символов (терминалов). Затем необходимо определить набор правил вывода вида α→β, в соответствии с которыми строятся цепочки (предложения) языка. В левой и правой частях правил могут встречаться специальные – нетерминальные символы (нетерминалы), которые в процессе вывода заменяются с помощью соответствующих правил до полной замены на соответствующие терминалы. Кроме того, грамматика должна включать в себя начальный символ(аксиому), с которого начинается получение любого предложения языка.

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

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

Распознаватели используются непосредственно при построении синтаксических анализаторов и являются их формальной моделью; строятся на основе теории конечных автоматов и автоматов с магазинной памятью.

Конечное множество символов, неделимых в данном рассмотрении, называется алфавитом (словарем), а символы, входящие во множество, называются буквами алфавита.

Например, алфавит A = {a, b, c, +,!} содержит 5 букв;

алфавит B = {00, 01, 10, 11} одержит 4 буквы, каждая из которых состоит из двух символов.

Конечная последовательность символов (букв) алфавита называется цепочкой (словом) в этом алфавите.

Пустая цепочка – это цепочка, которая не содержит ни одного символа (для обозначения используется символы ε или $).

Длина цепочки (слова) – число символов (букв), входящих в цепочку (слово).

Например, слово a=ab+!c в алфавите A имеет длину l(a) = 5 или | а |=5;

слово b=00110010 в алфавите B имеет длину l(b) = 4;

если α = abcdefg, то длина α равна 7 — l(α)=7 или | α|=7;

длина ε равна 0 — l(ε)=0 или |ε|=0.

Конкатенация (сцепление) цепочек – это цепочка αβ, если α и β – цепочки.

Если α = ab и β = cd, то αβ = abcd

Для любой цепочки α всегда αε = εα = α.

Обращение (реверс) цепочки α – это цепочка αR, символы которой записаны в обратном порядке.

Если α = abcdef, то αR = fedcba

Для пустой цепочки: ε = εR.

Cтепень цепочки α – это конкатенация n цепочек α:

α0 = ε;

αn = ααn-1 = αn-1α

<== предыдущая лекция | следующая лекция ==>
Перевод в обратную польскую запись выражений с указателями функций | Язык, порождаемый грамматикой, и сентенциальная форма в грамматике
Поделиться с друзьями:


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


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



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




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