русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Характеризация праволинейных языков


Дата добавления: 2013-12-23; просмотров: 1280; Нарушение авторских прав


Теорема 10.2.1. Каждый автоматный язык является праволинейным.

Доказательство. Пусть автоматный язык L(M) определяется конечным автоматом М=<Q, A, D, I, F>, где QÇA=Æ, и I={q0}. Положим N=Q, S=q0, P={p®xq : <p, x, qD}È{p®e : pÎF}. Тогда G=<N, A, P, S> – праволинейная грамматика (грамматика типа 3), порождающая язык L(M).

Теорема доказана.

Теорема 10.2.2. Каждый праволинейный язык является автоматным.

Доказательство. Без ограничения общности можно считать, что праволинейный язык L задан праволинейной грамматикой, не содержащей правил вида T®u, где uÎA+. Положим:

Q=N, I={S}, F={TÎN: (T®e)ÎP}, D={<T, u, B> : (T®uB)ÎP}.

Тогда конечный автомат М=<Q, A, D, I, F> порождает такой язык L(M), что L=L(M).

Теорема доказана.

Пример 10.2.1. Праволинейный язык

L={wÎ{a, b}*: çwçamod 2=0, çwçbmod 2=0}

порождается грамматикой G=<N, A, P, S>, где N={S, T, E, F}, A={a, b}, P={S®aT, S®bE, S®e, T®aS, T®bF, E®aF, E®bS, F®aE, F®bD}.

Диаграмма переходов конечного автомата M3, порождающего этот же язык имеет вид:

 

Рис. 10.2.1. Диаграмма конечного автомата М3

Определение 10.2.1. Праволинейная грамматика, в которой каждое правило имеет вид T®e, T®a, T®aU, где T, UÎN, aÎA, называется праволинейной грамматикой в нормальной форме (автоматной грамматикой, регулярной грамматикой).

Теорема 10.2.3. Каждая праволинейная грамматика эквивалентна некоторой праволинейной грамматике в нормальной форме.

Теорема 10.2.4. Классправолинейныхязыков замкнутотносительно итерации, конкатенации и объединения.

Теорема 10.2.5. Классправолинейныхязыков замкнутотносительно дополнения и пересечения.

Теорема 10.2.6. Пусть L – праволинейный язык над алфавитом А. Тогда найдется такое натуральное p>0, что для любого слова wÎL çwç³p можноподобрать слова x, y, zÎA*, длякоторых справедливы соотношения:y¹e, çxyç£p, xyz=w, xyizÎL (для всех i³0).



Пример 10.2.2. Пустьязык L={abnan: n³0} задан над алфавитом A={a, b}.

Пусть p – произвольноенатуральное число. Положим w=abpap.

Если положить x=e, то возможны следующие варианты:

y Z w xyyz
a bpap xyz aabpapÏL
abk(0<k<p) bp-kap xyz abkabpapÏL
abp ap xyz abpabpapÏL
abpak(0<k£p) ap-k xyz abpak+1bpapÏL

Как видно из приведенной таблицы, при любом натуральном p и x=e слово xyyzÏL. С помощью аналогичных выкладок можно придти к выводу о том, что при любом натуральном p и при x=a слово xyyzÏL. Этотже вывод оказываетсяверен и при x=abk, x=abpak. В свою очередь, это означает, что условие теоремы 10.2.6 не выполняется, а потому язык L не является автоматным.


 



<== предыдущая лекция | следующая лекция ==>
Конечные автоматы | Интуитивное определение алгоритма. Примеры алгоритмов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.