КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |