Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
theory-2009-2010.docx
Скачиваний:
4
Добавлен:
05.09.2019
Размер:
5.41 Mб
Скачать

4. Теорія програмування та обчислень

4. Класифікація породжувальних граматик

Пусть дана грамматика G = (N, T, P, S). Тогда если правила грамматики не удовлетворяют никаким ограничениям, то ее называют грамматикой типа 0, или грамматикой без ограничений.

Если каждое правило грамматики, кроме S e, имеет вид , где | | | |, и в том случае, когда S e P, символ S не встречается в правых частях правил,то грамматику называют грамматикой типа 1, или неукорачивающей.

Если каждое правило грамматики имеет вид A , где A N, (N T)*, то ее называют грамматикой типа 2, или контекстно-свободной (КС-грамматикой).

Если каждое правило грамматики имеет вид либо A xB, либо A x, где A, B N, x T* то ее называют грамматикой типа 3, или праволинейной.

Язык типа 1 - контекстно-зависимым (КЗ), язык типа 2 - контекстно-свободным (КС), язык типа 3 - праволинейным.

K3 K2 K1 K0.

Грамматика G называется неоднозначной, если существует цепочка w, для которой имеется два или более различных деревьев вывода в G.

Грамматика G называется леворекурсивной, если в ней имеется нетерминал A такой, что существует вывод для некоторой цепочки w.

Атрибутной грамматикой называется четверка AG = (G, AS, AI, R), где

  • G = (N, T, P, S) - приведенная КС-грамматика;

  • AS - конечное множество синтезируемых атрибутов;

  • AI - конечное множество наследуемых атрибутов, AS AI = ;

  • R - конечное множество семантических правил.

Атрибутная грамматика AG сопоставляет каждому символу X из N   T множество AS(X) синтезируемых атрибутов и множество AI(X) наследуемых атрибутов.

4. Теорія програмування та обчислень

5. Автоматна характеристика основних класів мов

Почнемо з більш простого класу мов – мов регулярних.

Під автоматом розуміється п’ятірка <K,X,,q,F>, де

  • K - множина станів,

  • X - множина вхідних станів,

  •  - функція переходів,

  • qK - початковий стан,

  • F – множина заключних станів.

Основним поняттям, на основі якого дається характеристика класів мов, є зображення мови L в автоматі A. Для того, щоб строго ввести це поняття, продовжимо функцію  на множину KF(X), де F(X) – напівгрупа, що породжена X з одиницею . Продовження задається індуктивно.При цій домов-леності  визначається так:

  • (k, )=k,kK (тобто кожний стан переводиться пустим словом сам в себе)

  • (k,px),pF(X),xX =>(k,px)=((k,p),x) (тобто продовження ф-ції  досить природнє.)

Будемо говорити, що мова L зображається в автоматі А <=> L={p|(q,p)F}. Автоматну характеристику класу регулярних мов дає наступна теорема:

Теорема. Мова L є регулярною <=> вона зображається в скінченому автоматі.

По аналогії з aвт. хар-кою регулярних мов, базується АХ трьох інших класів мов. Зокрема, для КВ-мов роль автоматів виконують автомати з магазинною пам’яттю, для БС-мов – лінійно-обмежені автомати, і нарешті, рекурсивно-злічені мови (як вже відомо) – машинами Тюрінга.

4. Теорія програмування та обчислень

6. Метод нерухомої точки

Відомо, що функція f:A->A має нерухому точку aA, якщо f(a)=A. Проблема мати чи не мати нерухому точку, звичайно, суттєво залежить від класу функцій, з яких вибирається f. Як правило, в основу цих властивостей вкладаються властивості, що базуються на неперервності.

Але ці властивоссті безпосередньо не можуть бути перенесені на клас програмних функцій. Спряжено це в першу чергу з тим, що топології, що використовуються у традиційних галузях є неадекватними в класі програмних функцій. Точніше кажучи, границі, що зберігаються класичними функціями, що робить їх неперервними, не відповідають навіть основним властивостям поняття програми, на приклад, не узгоджується з властивістю дискретністі програм. В зв’язку з цим виникає важлива проблема: чи можна адекватно ввести топологію, зокрема поняття границі, стосовно яких програмні функції зберігали границю.Відповідь так. Це дає підстави для наступної теореми:

Теорема. Програмні функції мають нерухому точку. В доведенні теореми нерухома точка будується конструктивно.

Застосування теорії нерухомої точки:

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