Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Формальные грамматики и языки

Читайте также:
  1. I. ГРАММАТИЧЕСКИЙ СТРОЙ. ПРЕДМЕТ ГРАММАТИКИ
  2. II. ОСНОВНЫЕ ЕДИНИЦЫ ГРАММАТИЧЕСКОГО СТРОЯ. РАЗДЕЛЫ ГРАММАТИКИ
  3. Алгоритмы и алгоритмические языки
  4. Алгоритмы и алгоритмические языки
  5. Государственный язык – турецкий. Языки делового общения – английский, немецкий, французский.
  6. Как возникают неформальные организации
  7. Малые неформальные группы, их структура и динамика

 

Последовательности символов, поступающих на вход автомата, создаются внешними по отношению к автомату объектом. Такие последовательности несут информацию о состоянии объекта и используются автоматом, например, для управления объектом, т.е. для изменения его состояния.

Входная последовательность может быть получена и другим способом:

Как результат считывания описания некоторого объекта или задачи, представленного на некотором входном языке. В этом случае состояние объекта представляется в виде описания объекта, а абстрактный символ состояния автомата – это условное обозначение класса рассматриваемого состояния (рис. 11).

 
 

 


Рис. 11

 

На рис. 11 S1,1, S 1,2, S 1,3, …, S 2,1, S 2,2, S 2,3, … - состояния объекта.

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

Выбор алфавита, на котором представляется описание, зависит от физических свойств носителя. Например, в вычислительной технике широко используется двоичный алфавит B=[1.0].

Синтаксис языка описания позволяет выявить синтаксические отношения между компонентами описания (буквами, словами, фразами).

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

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

Формальный язык можно задать с помощью формальной порождающей грамматики: G=<w1,V,W,R>,

Где w1eW – начальный символ, из которого выводятся правильные цепочки над V;

W – множество вспомогательных символов, каждый из которых обозначает некоторый класс правильных цепочек;

R – множество правил ввода.

В соответствии с классификацией Н. Хомского различают бесконечные (контекстно-свободные) и контекстно-зависимые грамматики.

В бесконечных грамматиках каждое правило из R имеет вид:

w::h, где weW, he(VUW)*.

если имеется несколько правил

w::h 1, w::h2, …, w::=2k,

раскрывающих нерминалной символ w, то они могут быть записаны компактно

w::h 1|h2 | … | hk.

 

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

A-грамматикой, если все правила её имеют вид w::=vw1,

Где weW, veV, w1eWU{w0}, w0 – пустой символ.

Например, построим грамматику, порождающую двоичные числа вида 110#, 0.1#, 010.011# и т.д. в двоичном алфавите

V= {0111.1#}.

Символ “.”используется для отделения целой части от дробной части числа, а символ “#” служит как разделитель для обозначения конца записи числа. Для упрощения записи правил введён символ двоичной цифры de{011} и перейти к алфавиту V= {d1. d#}.

Рассмотрим грамматику со следующими правилами:

w::=dw

w::= # | dw |.w

w::= # | dw

 

С использованием пустого символа w0 правила для w2 и w3 можно переписать

w2:: = # w0 | dw2 |. w3

w3:: = # w0 | dw3

 

2.4. АВТОМАТЫ И ГРАММАТИКИ [ 7 ]

 

Автомат распознаёт цепочку h над V, если, находясь в начальном состоянии, автомат получает на вход цепочку h последовательно символ за символом, и после завершения цепочки оказывается в выделенном состоянии w0. Для построения автомата, распознающего язык, порождаемый А-грамматикой G, необходимо каждому вспомогательному символу weW поставить в соответствие состояние автомата, в качестве множества терминальных символов взять множество входных символов автомата, каждому правилу w::vw1 поставить в соответствие переход между состояниями w и w1 под воздействием входного символа v. Начальному состоянию автомата соответствует w1,а выделенному состоянию w0.

В рассматриваемом примере построим граф автомата (Рис. 12).

 

 
 

 


Рис.12

 

 

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

В рассматриваемом примере это:

У1) S:=d

У2) S:=2*S=d

У3) M:=1

У4) M:=M/2; S:=S+d*M

У5) выдача числа S

У6) сообщение о синтаксической ошибке

Структура автомата, который можно назвать интерпретирующим, приведена на Рис. 13.

 

 

Рис. 13

 

 

Правила А-грамматики можно записать в виде:

wi::vj wk (jeJi, keKij, ieI),

причём wke WU{ w0 }, где w0 – пустой символ.

Если существует | Kij |>1, то автомат, построенный по грамматике G с помощью изложенной выше процедуры, будет недетерминированным.

Например, системе правил

w1:: v1 w2 | v2 w3

w2:: v2 | v2 w2

w3:: v3 | v3 w3

соответствует недетерминированный автомат, граф которого показан на рис. 14.

 
 

 


Рис.14

 

Для построения детерминированного автомата преобразуем недетерминированный автомат путём введения новых состояний и правил на основе следующих соотношений

 

w1 :: = vj { wk | keK1j };

{wi | ieM}:: = vj { wk | ke Kij ,ieM} (ieUJi ),

где множество вида { wt | teT} соответствует новым состояниям.

В рассматриваемом примере получим

J1 = {1}, J2 = {2}, J3 ={3};

K11 ={2,3}, K22 ={0,2}, K33 = {0,3};

w1 ::=v1 {w2 , w3 }

{w2 , w3 }::=v2 {w0 , w2 } | v3 {w0 , w3 };

{w0 , w2 }::=v2 {w0 , w2 };

{w0 , w3 }::=v3 {w0 , w3 }.

Граф переходов детерминированного автомата показан на Рис. 15

 

 
 

 


Рис.15

 

Выделенными состояниями являются {w0 , w2 } и {w0 , w3 }.

Завершение работы автомата в этих состояниях означает распознование цепочки языка.

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

w1::={w2 , w3 }; w2 ::=(w2) | w0; w3 ::=w2 | w0,

где w1 – начальный символ

w0 - пустой символ

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

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

 
 

 

 


Рис. 16

 

Состояние является одновременно и начальным и выделенным заключительным состоянием. Распознавание цепочки ((((((((

1 2 3 4 5 6 7 8

показано на рис. 17

 
 

 


Рис. 17

 

2.5. МАШИНА ТЬЮРИНГА [ 5, 8 ]

 

Универсальный способ задания алфавитного преобразования – алгоритмический, т.е. основанный на понятии алгоритма [12]. Под алгоритмом обычно понимается точное предписание, определяющее процесс переработки исходных данных в требуемый результат.

При этом требуется: 1) чтобы исходные данные были заданы в конкретном алфавите и могли принимать значения из некоторого множества, т.е. носили массовый характер; 2) чтобы процесс переработки данных состоял из отдельных дискретных шагов и был детерминированным; 3) чтобы были чётко указаны условия остановки процесса и что следует считать результатом процесса.

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

Было предложено несколько точных математических моделей, уточняющих понятие алгоритма, - система рекурсивных функций Клини, машина Тюринга, нормальный алгоритм А.А. Маркова, схема Колмогорова-Успенского, лямбда- конверсии Черча, финитные комбинаторные процессы Поста.

А. Черч впервые обосновал положение о том, что все уточнения понятия алгоритма эквивалентны (“Тезис Чёрча”), т.е. правильно отражают интуитивное представление об алгоритмах, сложившиеся в математике.

 

Модель алгоритма, называемая машиной Тьюринга, состоит из бесконечной ленты Л, разделенной на ячейки, и читающей – пишущей головки Г, которая перемещается по ленте.

В каждой ячейке может быть записан один символ из алфавита А. Головка может находиться в одном из внутренних состояний, принадлежащих конечному множеству S. Работа машины происходит в дискретном времени. В зависимости от состояния головки seS и символа а eА, против которого она стоит, головка записывает на ленте новый символ а+ (или оставляет старый), переходит в новое состояние s+ (или остается в старом) и передвигается: вправо (R), влево (L) или остается в прежнем положении (N).

В табл. 11 приведен пример команд машины Тьюринга, имеющих вид (а,s) → (a+, D, s+), где а e{_, +, 1}, s e{s1, s2, s3,!}, D e{R, L, N}.

Таблица 11

  a s
s1 s2 s3
_ + _R s3 _R s1 _N! 1 L s2 _R s1 + Ls2 1 R s3 1 N s2 + R s3

Данная машина выполняет сложение чисел, представленных в унитарном коде. Например, сложение чисел 111+11 (три плюс два) осуществляется за три цикла:

111+11

11+111

1+1111

+11111

Начальное состояние головки s1. Состояние s3 соответствует перемещению головки вправо с «перетаскиванием» единицы. Состояние s2 соответствует перемещению головки влево. Состояние! означает остановку машины. На рис. 18 показан начальный этап вычислений.

 

Л … _ 11 + 111 _ …

Г s1

 

Л … _ _ 1 + 111 _ …

Г s3

 

Л … _ _ 1 + 111 _ …

Г s3

 

Л … _ _ 1 + 111 _ …

Г s3

 

Л … _ _ 1 + 111 _ …

Г s3

 

Л … _ _ 1 + 111 _ …

Г s3

 

Л … _ _ 1 + 111 _ …

Г s3

 

Л … _ _ 1+1111 _ …

Г s2

Рис. 18


Дата добавления: 2015-10-23; просмотров: 160 | Нарушение авторских прав


Читайте в этой же книге: Способы описания конечных автоматов | Минимизация числа состояний абстрактного автомата | Тестирование абстрактных автоматов | Машинное изображение чисел | Выполнение арифметических и логических операций | Микропрограммирование | Элементная база построения комбинационных автоматов | Переключательные функции (логика высказываний) | Канонический метод структурного синтеза автоматов | Моделирование дискретных асинхронных процессов и сети Петри |
<== предыдущая страница | следующая страница ==>
Язык Граф-Схем Алгоритмов| ПРЕДСТАВЛение СИМВОЛЬНОЙ ИНФОРМАЦИИ

mybiblioteka.su - 2015-2024 год. (0.016 сек.)