
- •3. Розділ 2
- •4. Розділ 3
- •5. Розділ 4
- •1.1 Розрахунок найкоротшого шляху графу за алгоритмом Дейкстри .
- •1.2 Розрахунок максимального потоку в мережі за алгоритмом Форда-Фалкерсона.
- •1.3 Розрахунок мережевого графу.
- •1.3 Розрахунок мережевого графу.
- •2.1 Мінімізація логічної функціїї аналітичним методом та за допомогою карт Карно.
- •3.1 Синтез кінцевого автомату.
- •4.1 Представлення оператора Паскаля While за допомогою кс-граматики.
- •4.2 Представлення оператора Паскаля While у формі Бекуса.
- •5.1 Зіставлення програми : алгоритм Форда Фалкерсона.
4.1 Представлення оператора Паскаля While за допомогою кс-граматики.
Специфіка формально лінгвістичного підходу до опису безлічі ланцюжків починає проявлятися при розгляді вужчих класів граматик. Загальноприйнятою класифікацією граматик і породжуваних ними мов є ієрархія Хомского, що містить чотири типи граматик. Однією з них є КС - граматика.
КС - мови є найбільш вивченими класом. Це пояснюється тим, що з одного боку КС-граматики виявилися дуже відповідним апаратом для опису будови природних мов і особливо мов програмування. З іншого боку, завдяки відносній простоті і змістовності структури КС-мов і наявності зручних засобів її опису дослідження їх представляє значний практичний інтерес.
Поява поняття КС-граматики практично співпала з розробкою мета мови Бекуса (чи нормальної форми Бекуса), яка була уперше використана при описі мови програмування АДГОЛ, - 60 і швидко став загальноприйнятим засобом формального опису мов програмування. Описом мови за допомогою нормальних форм Бекуса є сукупність так званих "металінгвістичних формул" - виразів виду Х::=Y1|Y2|.. |Yn, де Х - деякий текст ув'язнений в кутові дужки і званий металінгвістичною змінною, а Y1, .., Yn - послідовність металінгвістичних змінних і основних символів мови (букв, цифр, роздільників, неділимих слів типу "begin" і тому подібне). Знак ::= називається металінгвістичною зв'язкою і читається як "є" або "це". Знак |- це металінгвістична зв'язка "або". Металінгвістична змінна є ім'ям конструкції мови.
Металінгвістична формула в цілому - це опис різних синтаксичних варіантів побудови конструкцій Х, що стоїть в лівій частині, через інші конструкції і символи мови, вказані в правій частині. Перерахування варіантів представлення виробляється з використанням зв'язки "або".
Розглянемо як приклад для КС-граматики оператор Паскаля While.
У – умова
ЗМ – змінна
Д - дія
СС – службовий знак
Б – буква
Ц – цифра
БЦ – БЦ - ланцюг
Ч – число
ОП – оператор
КС – ключове слово
<КС1><УМ><КС2><Д>
<КС1>
While
< КС2> Do
<У> <ЗМ> <СС> <ЗМ>
<У> <_ЗМ> <СС> <Ч>
<ЗМ> <Б>
<ЗМ> <Б> <БЦ>
<Б> <А>
<Б> <а>
<Б> <B>
.
.
.
<Б> <Z>
<Б> <z>
<БЦ> <Б> <БЦ>
<БЦ> <Ц> <БЦ>
<Ц> <1>
<Ц> <2>
<Ц> <3>
<Ц> <4>
<Ц> <5>
<Ц> <6>
<Ц> <7>
<Ц> <8>
<Ц> <9>
<Ц> <0>
<СС> << >
<СС> < >>
<СС> < = >
<СС> <<= >
<СС> <>= >
<Ч> <Ц>
<Ч> <Ц> <Ч>
<Д> <begin> <ОП> <end>
<ОП> <ЗМ><ЗМ>
<ОП> <ЗМ><Ч>
4.2 Представлення оператора Паскаля While у формі Бекуса.
Для зручності запису продукції граматик використовується нотація, яка введена Бекусом, - нормальна форма Бекуса-наура. Ця нотація полягає в наступному:
1) символ "→" замінює на символ "::=";
2) в кутові дужки "< >" беруться не термінальні символи;
3) для скороченого запису продукції граматики використовується знак "|", що означає "або" і об'єднує групу продукций з однаковою лівою частиною, але різними правими.
У – умова
ЗМ – змінна
Д - дія
СС – службовий знак
Б – буква
Ц – цифра
БЦ – БЦ - ланцюг
Ч – число
ОП – оператор
КС – ключове слово
<КС1><УМ><КС2><Д>
<КС1>::=While
< КС2>::=Do
<У>::= |<ЗМ> <СС> <ЗМ>|<ЗМ> <СС> <Ч>
<ЗМ>::= <Б> | <Б><БЦ>
<Б>::=A|a|B|b..Z|z
<БЦ>::=<Б><БЦ>| <Ц><БЦ>
<Ц>::=1|2|3|4|5|6|7|8|9|0
<ЗМ>::=<|>|=|>=|<=
<Ч>::=<Ц>|<Ц><Ч>
<Д>::=begin<ОП>end
<ОП>::=<ЗМ><ЗМ>|<ЗМ><Ч>
Розділ 5.