Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л_одм_4.doc
Скачиваний:
8
Добавлен:
28.03.2016
Размер:
140.8 Кб
Скачать

Раздел 5. Языки и грамматики Вступление

До начала двадцатого века, говоря о языках, имели в виду только естественные языки (русский, английский, латинский и др.), являющиеся или являвшиеся в прошлом средствами общения между людьми в их повседневной жизни. Наука о языках - лингвистика - сводилась в основном к изучению конкретных естественных языков, их классификации, выяснения сходства и различия между ними.

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

1) Знаковой системы , т. Е. Множества допустимых последовательностей знаков;

2) Множества смыслов этой системы;

3) Соответствия между последовательностями знаков и смыслами, делающими "осмысленными" допустимые последовательности знаков.

Знаками могут быть буквы алфавита, математические обозначения и т. д. Наука об осмысленных знаковых системах называется семиотикой.

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

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

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

Правила, определяющие множества текстов, образует синтаксис языка; описание множества смыслов и соответствия между текстами и смыслами - семантику языка. Семантика языка зависит от характера объектов, которые описываются языком и средства ее изучения для различных типов языков различны.

О семантике языка метаматематики - формальных теориях - речь шла в четвертом разделе. Использование и исследование семантики языков программирования стало самостоятельной отраслью теоретического программирования. Развитие семантики связано прежде всего с машинным переводом.

Что же касается синтаксиса, то его особенности гораздо меньше зависят от назначения и целей языка. Именно в изучении синтаксиса получены значительные результаты и за последние 30 лет здесь сложился специальный математический аппарат - теория формальных грамматик. При этом язык рассматриваются не как средство общения, а как множество формальных объектов - последовательностей символов алфавитов. Далее такие последовательности будут называться словами.

5.1. Формальные грамматики и их свойства

Пусть задан алфавит V и тем самым множество V* всех конечных слов или цепочек в алфавите V. Формальный язык L в алфавите V - это произвольное подмножество L V*. Конструктивное описание формальных языков осуществляется с помощью формальных систем специального вида, называемых формальными порождающими грамматиками.

Формальная порождающая грамматика G - это формальная система, определяемая четверкой объектов G = {V, W, I, P}, где V - алфавит терминальных символов; W - алфавит нетерминальных символов (V W = ); I - начальный символ (аксиома ) грамматики; Р - конечное множество правил вида , где , - цепочки в алфавите V W. Цепочка непосредственно выводима из цепочки в грамматике G (обозначается ). Индекс G опускается, если ясно, о какой грамматике идет речь.

G

Если = , = и то это правило в грамматике G.

Цепочка выводима из если существует последовательность = 0; 0 = 1, ... .

n = , такая, что для всех i = 0, 1, ... , n - 1 справедливо i i+1. Эта последовательность называется выводом из , а n - длинной вывода. выводимость из обозначается .

n

Языком L(G) порождаемым грамматикой G называется множество всех цепочек в терминальном алфавите V, выводимых из I. Грамматика G и G' эквивалентны, если L(G) = L(G').

В теории грамматик сложились свои традиции обозначений, которых мы будем придерживаться. Символы терминального алфавита принято обозначать малыми латинскими буквами, цепочки в алфавите V W - греческими буквами. Длинна цепочки обозначается l() или  . Множество всех цепочек в алфавите V V*.

Множество всех непустых цепочек обозначается V+.

Лемма 1. Для произвольной грамматики G существует эквивалентная ей грамматика G1, левые части правил которой не содержат вхождений основных символов. Пусть G = {V, W, R, I}. Каждому символу а V поставим в соответствие двойник - символ А, не содержащийся в V W; множество всех двойников обозначим V'.

Определим теперь G1 = {V1, W1, R1, I1} следующим образом: V1 = V; I1 = I; W1 = W

V', а R1 = R' R", где R' - множество всех правил вида А а (а V, А - двойник а), а R" получено из R заменой в каждом правиле всех вхождений терминальных символов вхождениями их двойников. Каждому выводу I, 1, ... , n в G соответствует вывод I, 1',

... , n', n+1', ... , n+m' в G', где i' ( i n ) получено из 1 заменой всех символов из V их двойниками, а n+j' ( j m ) получено из n+j-1 применением правила из R', причем к n+m'

правила из R' уже неприменимы. Ясно, что n+m' = n , поэтому L(G) L(G1). Поскольку

только правила из R' содержат терминальные символы в правых частях, то любой вывод из G1 цепочки длины m должен содержать m применений правил из R'.Удалив из вывода применение этих правил и приведя в нем обратное переименование двойников в символы V, получим вывод этой же цепочки в G. Отсюда

L(G1) L(G) и следовательно

L(G) = L(G1).

Прием введения двойников, только что продемонстрированный при исследовании грамматик, является весьма распространенным. Сама же лемма позволяет утверждать, что для любого языка L, порожденного некоторой формальной грамматики, существует порождающая его грамматика, для которой L - множество ее заключительных слов.

Таким образом, формальные грамматики способны любые перечислимые множества.

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

Грамматика типа 0 - это грамматика произвольного вида, без ограничений на правила вывода.

Грамматика типа 1 (контекстная грамматика) - это грамматика, все правила которой имеют вид А , где (V W)+. Цепочки и - это контекст правила. Они не изменяются при его применении.

Грамматика типа 2 или контекстно - свободная грамматика (КС-грамматика) -

грамматика, все правила которой имеют вид А , где (V W)*.

Грамматика типа 3 или регулярная грамматика - грамматика, все правила которой имеют вид либо А В, либо А .

Язык L называется языком типа i (i = 0, 1, 2, 3), если существует порождающая его грамматика типа i.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]