Дискретная математика без формул - [18]

Шрифт
Интервал


Введем в оборот из чисто эстетических соображений еще один красивый термин – СЕНТЕНЦИАЛЬНАЯ ФОРМА. Дело в том, что при построении программ в формальных грамматиках всегда танцуют от одного начального нетерминального символа. Обозначим этот символ «программа». Вместо этого символа по одному из грамматических правил происходит подстановка соответствующей правой части, которая может содержать последовательность из каких-то нетерминальных и терминальных символов. Кстати, такой процесс называется НЕПОСРЕДСТВЕННЫМ ПОРОЖДЕНИЕМ. Любой их появившихся нетерминальных символов может быть заменен по подходящему грамматическому правилу какой-то цепочкой символов. То есть начальный нетерминальный символ «программа» последовательно превращается во все более длинную цепочку символов. И так вплоть до того момента, когда в последовательности символов останутся только терминальные символы. То есть будет получено слово данного языка (по иронии судьбы называемое ПРЕДЛОЖЕНИЕМ). Все последовательности символов, которые в процессе непосредственных порождений находятся между начальным нетерминальным символом и конечным предложением и называются сентенциальными формами. А нам остается радоваться, что английский язык нам неродной.


Компилятор, получив программу, выполняет обратную работу. Пред'явленное предложение он свертывает по грамматическим правилам (теперь двигаясь от правой части правила к левой) начального символа «программа».


Обычно существует огромное количество вариантов как порождения, так и свертывания. Если свертывание потерпело неудачу, то должны исследоваться другие варианты. Слово будет признано НЕпринадлежащим данному языку (грамматике), если ни один из вариантов свертывания не приведет к удаче. Поскольку такой перебор вариантов на практике как правило неприемлем, то и грамматики пытаются придумывать не случайные, а с полезными свойствами. А способы свертывания (распознавания) используют эти хорошие свойства, чтобы минимизировать или вообще исключить блуждания.


Есть достаточно грубая, но, все равно, полезная в первом приближении классификация грамматик, принадлежащая Хомскому. Он их делит на три типа, если не считать нулевого. К нулевому он относит грамматики с грамматическими правилами произвольного вида. А раз нет никаких ограничений, то там может быть все, что угодно и, следовательно, анализировать их невозможно. Точнее, считайте, что проанализировали и сделали заключение: Там может быть все, что угодно и неугодно. Так что иметь с ними дело бессмысленно. Даже сумасшедшим.


Грамматики первого типа называют КОНТЕКСТНО-ЗАВИСИМЫМИ (или просто КЗ). В большинстве случаев разумно принять общее ограничение, что правило заменяет строго один нетерминальный символ. Отличительная особенность КЗ–правил в том, что замена нетерминального символа на строку допускается, когда этот символ находится в некотором окружении других символов (в контексте). Например, нетерминальный символ «оператор» может быть заменен на нетерминальный символ «пустой оператор», если в преобразуемой строке перед символом «оператор» был другой символ, за которым непосредственно следовал «оператор». А иначе такую замену делать нельзя.

Представьте например, правило официанта. Осуществлять замену грязной тарелки на выписанный счет можно при наличии опустошенного бокала. В другом контексте (при полном бокале [граненом стакане] рядом) вместо грязной тарелки клиенту предлагается новая закуска.

Для того, чтобы грамматика относилась к типу КЗ достаточно, чтобы хотя бы одно правило было именно первого типа. (Остальные могут быть других типов, кроме нулевого).

Грамматики второго типа называют КОНТЕКСТНО-СВОБОДНЫМИ (или просто КС). Каждое правило может применяться без оглядки на контекст. Вместо грязной тарелки – новая закуска (без всяких дополнительных условий)… Грамматики разных типов могут порождать один и тот же язык. Компиляторы диктуют требование приводить грамматику к типу КС. Обычно в рамках уже этого типа накладываются дополнительные ограничения, что позволяет существенно упростить грамматический разбор в компиляторе.


Грамматики последнего третьего типа называются АВТОМАТНЫМИ или РЕГУЛЯРНЫМИ. Это связано с тем, что они порождаются и распознаются автоматами (эту математическую модель ассоциируют не с Калашниковым, а с фамилиями математиков-логиков Мили Мура Трахтенбротта и т. п.) и регулярными выражениями (это, как и в регулярной армии – выражения строятся по простым правилам и просто распознаются – это тоже математическая модель).

Обычно автоматные грамматики используются на уровне лексики. Лексема, в обычном понимании – это словарная единица. Тем ни менее, с точки зрения компилятора это «символ», коль скоро «словом» будет вся программа. В данном случае, например, 345.08 может быть распознан как один символ – действительное число.

Лексический анализ в компиляторе предшествует синтаксическому анализу… Существуют знаменитые команды UNIXlex и yacc, который позволяют автоматизировать процесс написания лексического и синтаксического анализаторов компилятора.

Что– то мы очень уклонились в сторону программирования. Программирование -это тоже математика. Тоже дискретная. Но уже другая. И это другая история.


Еще от автора Александр Валерьевич Соловьев
Ограбления, которые потрясли мир

Эта книга – о «выдающихся» ворах и грабителях. О тех, кто прославил свое имя на крови либо благодаря хитроумным комбинациям и отчаянной наглости. Для них мало значила человеческая жизнь, на первом месте стоял азарт и жажда наживы.Как они становились преступниками и как их ловили? Что привело их к воровству и к чему привело воровство? Как наказывает грабителей суд человеческий и как карает их суд Божий?..Станьте соучастником захватывающих авантюр, где сплелось все: воровская любовь и любовь к воровству; страшное, смешное, глупое и грустное; преступление и наказание…


Изгои российского бизнеса: Подробности большой игры на вылет

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


Знаковые люди

В этой книге собраны опубликованные в разное время в журнале «Коммерсантъ. Деньги» в рубрике «Story» истории жизни тех, кто в разные времена повелевал умами, кошельками, душами, да и жизнями тысяч, а то и миллионов людей. Наши герои жили в разные эпохи, их свершения можно оценивать по-разному - кто-то оставил после себя выдающиеся произведения искусства или россыпь новых технологий, кто-то - основополагающую теорию или глобальную идею, а кто-то - развалины мифа или потрясающую по размаху, эффективности и жестокости преступную империю.


Знаковые моменты

Третья книга - сборник статей из рубрики STORY журнала «Коммерсантъ ДЕНЬГИ» - в отличие от первых двух обращается не к судьбам отдельных людей или компаний, а к событиям глобального масштаба, раз и навсегда изменившим уклад, традиции, сами основы существования целых обществ, стран и континентов.Неудивительно, что весьма драматичную роль во всех этих историях играли деньги, причем порой самым неожиданным образом. Кто на самом деле разбогател на золотой лихорадке? Чьим экономическим интересам угрожал Павел I? Как быстро можно уничтожить весь Интернет? Ответы на эти и другие вопросы вы найдете в книге «знаковые моменты».Повседневная жизнь обычно проплывает перед нашими глазами неторопливой чередой малозначимых событий и почти бессмысленной суеты.


Не сдаваться: 30 рассказов о тех, кто всегда поднимался с колен

Продолжение бизнес-бестселлеров «Бизнес есть бизнес» и «Бизнес есть бизнес 2», победителей премии «Бизнес-книга года» журнала «Свой бизнес» 2006 года. Эта книга о тех, кто всегда понимался с колен, какой бы сильный удар ни пришлось им получить, о тех, кто всегда готов начинать свое дело с нуля снова и снова, не умеет сдаваться, ломаться под давлением обстоятельств. Герои книги уверены, что свой шанс преуспеть есть практически у каждого. Что для этого необходимо? Да ничего нового - вера в себя, упорный труд и толика удачи.


Апокалипсис: катастрофы прошлого, сценарии будущего

Эта книга – о самых масштабных или просто жутких катастрофах, когда-либо обрушивавшихся на человечество.Эпидемии и стихийные бедствия, войны и аварии с завидной регулярностью разрушали и разрушают, убивали и убивают, ставя под угрозу само существование человечества или, по крайней мере, значительной его части.Что удивительно, самые разнообразные беды и напасти обнаруживают пугающе сходные характеристики… Как итог, пять глав, которые авторы объединили в книгу, по сути, повествуют о фактическом противостоянии человека и окружающего мира.


Рекомендуем почитать
Квантовый оптоэлектронный генератор

В книге развита теория квантового оптоэлектронного генератора (ОЭГ). Предложена модель ОЭГ на базе полуклассических уравнений лазера. При анализе доказано, что главным источником шума в ОЭГ является спонтанный шум лазера, обусловленный квантовой природой. Приводятся схемы и экспериментальные результаты исследования малошумящего ОЭГ, предназначенного для применения в различных областях военно-космической сферы.


Флатландия. Сферландия

Произведения Э. Эбботта и Д. Бюргера едины по своей тематике. Авторы в увлекательной форме с неизменным юмором вводят читателя в русло важных геометрических идей, таких, как размерность, связность, кривизна, демонстрируя абстрактные объекты в различных «житейских» ситуациях. Книга дополнена научно-популярными статьями о четвертом измерении. Ее с интересом и пользой прочтут все любители занимательной математики.


Стратегии решения математических задач

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


Вначале была аксиома. Гильберт. Основания математики

Давид Гильберт намеревался привести математику из методологического хаоса, в который она погрузилась в конце XIX века, к порядку посредством аксиомы, обосновавшей ее непротиворечиво и полно. В итоге этот эпохальный проект провалился, но сама попытка навсегда изменила облик всей дисциплины. Чтобы избавить математику от противоречий, сделать ее «идеальной», Гильберт исследовал ее вдоль и поперек, даже углубился в физику, чтобы предоставить квантовой механике структуру, названную позже его именем, — гильбертово пространство.


Симпсоны и их математические секреты

Саймон Сингх рассказывает о самых интересных эпизодах мультсериала, в которых фигурируют важнейшие математические идеи – от числа π и бесконечности до происхождения чисел и самых сложных проблем, над которыми работают современные математики.Книга будет интересна поклонникам сериала «Симпсоны» и всем, кто увлекается математикой.На русском языке публикуется впервые.


Истина и красота: Всемирная история симметрии

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