Представлення оператора Паскаля 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>
<ОП>
<ЗМ><ЗМ>
<ОП>
<ЗМ><Ч>