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

2. Системне програмування

3. Регулярні множини та регулярні вирази, їх звязок із скінченними автоматами. Основні тотожності в алгебрі регулярних виразів.

Регулярна множина в алф.  (ск. алфавіт) задається рекурсивно:

  1.  - рег. множ.;

  2. {e} - рег. мн. в алф. ;

  3. {a} - рег. мн.  a  ;

  4. якщо P та Q - рег. мн., то PQ, PQ, P* - рег. мн.

Регулярний вираз в алф.  та відповідні рег. множ, які вони позначають, задається рекурсивно:

  1.  - рег. вираз, що позначає рег. множ. ;

  2. e - рег. вираз, що позначає рег. множ. {e};

  3. a - рег. вираз  a  , що позначає рег. множ. {a};

  4. якщо p та q - рег. вираз, що позначає відп. рег. мн. P та Q , то (p+q) - рег. вираз, що позн. PQ, (pq) - рег. вираз, що позн. PQ, (p)* - рег. вираз, що позн. P*.

Алгебра регулярних виразів: ER=<B(*),{,,*}>. Нехай ,, - рег. вирази, тоді

  1. +=+,

  2. +(+)=(+)+,

  3. (+)=+,

  4. ae=ea=a,

  5. a*=a+a*,

  6. a+a=a,

  7. *=e,

  8. ()=(),

  9. (+)=+,

  10. a=a=,

  11. (a*)*=a*, 12) a+=a

Теорема. Деяка мова задається скінченим автоматом  коли мова є регулярною множиною.

2. Системне програмування

4. Вивід у граматиці. Дерево виводу. Лівостороння та правостороння стратегії виводу.

Нехай G-граматика. Будемо казати, що послідовність v безпосередньо породжує послідовність w: v w, якщо v=xUy, w=xuy, та існує правило U ::= u

Будемо казати, що послідовність v породжує w: v+ w, якщо існує посліовність v=u0 u1 un =w

Лівостороння стратегія виводу w в G - це така стратегія безпосереднього виводу де на кожному кроці береться перший з ліва направо нетермінал. Правостороння протилежна лівосторонній.

Синтаксичні дерева.

С интаксичне дерево - дерево, корінь якого є аксіома, проміжні вершини позначені елементами з N, на кроні знаходяться елементи з множини E.

Контекстно-вільні граматики: Породжуюча граматика (за Хомським): G=<N,E,P,S>, де N - допоміжний алфавіт (алфавіт нетерміналів); E - основний алфавіт (алфавіт терміналів); N та E - скінченні множини; P - скінчена множина правил типу , де: , ( множина всіх слів у термінальному алфавіті), - аксіома (виділений нетермінал).

Впорядковане дерево D називається деревом виводу (або деревом розбору) в КВ-граматиці G(S)=(N,E,P,S), яцщо виконуютсья наступні умови:

  1. корінь дерева D позначений S;

  2. кожен лист позначений або , або e;

  3. кожна внутрішня вершина помічена нетерміналом;

  4. якщо N - нетермінал, яким позначена внутрішня вершина і X1,...,Xn - мітки її прямих нащадків в у вказаному порядку, то N->X1...Xk - правило з множини P.

2. Системне програмування

5. Ll(k)-граматики. Перевірка ll(1)-умови для довільної кв- граматики

Граматика називається -граматикою, якщо існують два виводи:

,

,

та:

, то , де

{множина термінальних слів, довжина яких не більше , які можна вивести з }

, якщо

LL(1)-умова для довільної КС-граматиці:

,

,

Якщо з виводиться не -слово, то вже не впливає на результат.

Умови:

  1. , , ,

  1. в граматиці не може бути , ,

  2. Якщо існує таке , то при

,

Функція:

,

,

в інших випадках не визначено.

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