Научная литература
booksshare.net -> Добавить материал -> Лингвистика -> Гросс М. -> "Теория формальных грамматик " -> 55

Теория формальных грамматик - Гросс М.

Гросс М., Лантен А. Теория формальных грамматик — М.: Мир, 1971. — 296 c.
Скачать (прямая ссылка): teoriyaformalnihgrammatik1971.djvu
Предыдущая << 1 .. 49 50 51 52 53 54 < 55 > 56 57 58 59 60 61 .. 101 >> Следующая


4) А-языки были независимо введены также Н. Хомским. — Прим. ред. 160

Часть II. Некоторые замечательные классы языков

10.1.1. Определение

Автоматная грамматика, или А-грамматика, имеет алфавит V = Va U Vt (Va — вспомогательный, Vt — основной), где VAf]VT = 0, Va = {Ai\ 1 причем Ai — аксиома, Vt = {aj|0-</-<m} и

правила вида

At-* O1Ak (правосторонние)

или

A1-* AkO1 (левосторонние)

(в каждой грамматике — только правосторонние или только левосторонние!), а также вида

At-*ah At-*E

(словарные или терминальные правила).

Стрелка в X-* Y (как и выше) означает «подставить Y вместо X».

Пример. V = {Р, Q} U [a, b}; аксиома — Р\

Р-*аР

(0Прав)

P-

Q-Q-

• aQ ¦bQ ¦b

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

{ambn I m, п> 0).

Тот же самый язык может быть описан другой грамматикой

P-* Pb

(OMB) :

P-* Qb Q->Qa Q-* а

Приведем в качестве примера вывод цепочки asb2 в грамматике

(Оправ) •

Р-*аР~* ааР -* aaaQ -* aaabQ -* aaabb.

Замечание. Любой конечный язык является А-языком. Множество, содержащее п цепочек, — {/,, f2, ..., f„}, ft = ап ... aikl, — может быть описано следующей А-грамматикой:

G = [Р-*ацАп] An-*O12A12; ...; Aitkr2-*aitk.-iAltl

Ahkt-X-*-аЛі I 1 <i<n}. Гл. X. Автоматные языки и конечные автоматы

161

tO.1.2. Синтаксические структуры

Подобно КС-грамматике, А-грамматика задает некоторое множество древовидных структур.

Пример. Цепочке aaabb, выведенной в (GnpaB), отвечает структура

b

? скобочной форме эта структура имела бы следующий вид:

(a(a(a(b(b))))).

PPPQQ

Структуру вида

pP P

П--Г-

* * а

иногда называют «правоциклической».

Если бы для вывода цепочки мы воспользовались грамматикой (Gneв), то эта цепочка имела бы («левоциклическую») структуру

P

q /> '

или в скобочной записи

(((((а)а)а)Ь)Ь).

pppqq

10.1.3. А-языки и Комит

Известный язык программирования Комит1) может быть описан посредством А-грамматики. Комит включает команды (правила) следующего вида:

NOMl ESYMB = ESYMBVINST, .... NOM2,

левая часть правая часть

где

') См. статью В. И н г в е «Язык для программирования задач машинного перевода» в «Кибернетическом сборнике», в, 1963, ИЛ, M., стр. 229—266. — Прим. перев. 162

Часть II. Некоторые замечательные классы языков

а) NOMl—имя (номер) данной команды.

б) S SYMB позволяет искать в памяти машины определенные последовательности символов, имеющие в Комите статус единой последовательности.

в) S SYMB' выполняет над символами, обнаруженными левой частью команды, определенные операции.

Таким образом, SSYMB содержит операнды, a SSYMB' — операции. Формально S SYMB и S SYMB' суть последовательности любых слов, цифр или иных символов, разделенных знаком +. Например:

1 + МЯЧ + $ + СТАКАН + 2.

Команды Комита выполняются строго слева направо1).

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

д) NOM2 — имя (номер) команды, которая должна выполняться непосредственно вслед за данной.

Число элементов, фигурирующих в S SYMB и в S SYMB', ограничивается только реальным объемом памяти используемой ЭВМ. Однако на соотношения между S SYMB и S SYMB' могут быть наложены определенные ограничения. Для того чтобы Комит был А-языком, операции в S SYMB' должны быть определены независимо от операндов. Допустим, однако, что мы хотим, чтобы в ходе трансляции программы, написанной на Комите, можно было проверять, отвечает ли каждой операции в S SYMB' определенный операнд в S SYMB; тогда нам придется ввести ограничения, связывающие левую и правую части команды. Если подобные ограничения разрешается неограниченно вставлять друг в друга, то Комит уже не будет А-языком.

§ 10.2. КОНЕЧНЫЕ АВТОМАТЫ

Напомним, что КС-грамматикам мы поставили в соответствие автоматы с магазинной памятью; аналогичным образом мы поставим в соответствие А-грамматикам машины весьма специального ьида — так называемые конечные автоматы.

10.2.1. Описание конечных автоматов

Конечный автомат может принимать конечное число состояний Si.....Sp. Он имеет читающую головку и ленту, которая перемещается под этой головкой. Лента разбита на ячейки; в каждой ячейке может находиться один символ из словаря V = [at | О •^iя}, где ао = В играет роль пустого символа.

') Именно этим обеспечивается «автоматность» языка. — Прим ред. Гл. X. Автоматные языки и конечные автоматы

163

Одно из состояний автомата — So — выделено и называется на¦ чальным состоянием.

В В в % ah aI aI В В

п

10.2.2. Функционирование конечного автомата

На содержательном уровне функционирование конечного автомата можно представить себе следующим образом. На ленте записывается цепочка а є V*; будем считать, что все ячейки слева и справа от а заполнены символами В. Автомат начинает работать в состоянии S0, причем головка обозревает самый левый символ цепочки а. Прочтя обозреваемый символ, автомат переходит в новое состояние и перемещает ленту на одну ячейку влево. Переход в новое состояние выполняется в соответствии с одной из команд, имеющих вид
Предыдущая << 1 .. 49 50 51 52 53 54 < 55 > 56 57 58 59 60 61 .. 101 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed