Page 8 - 4761
P. 8
Описати формальну граматику мови можна задавши множину правил, за якими із
символів алфавіту будуються такі послідовності символів, що належать даній мові і
називаються правильними словами.
Ці правила дозволяють замінити символи або рядки символів другими символами
чи рядками. Наприклад, є початкове слово add , яке можна замінити на А+В, а А і В
любими невід’ємними цілими числами <10. Користуючись цим правилом А можна
замінити на 3 і В на 2, отримавши 3+2. Якщо А буде 5 , а В замінити на 6, то 5+6.
При введенні додаткового правила про заміну А на А+В, отримаємо А+В+В.
Оскільки А можна замінити як на А+В, так і на ціле число, то при заміні символів
однозначності не треба. Крім того, і одне і друге В в виразі А+В+В не обов’язково
заміняти одними і тими ж символами. Наприклад:
A B B
3 5 7
З другого боку, можна замінити А на А +В і отримати А+В+В+В і продовжувати
будувати суми довільної довжини.
В приведених правилах символи add , А і В можна заміняти другими символами, а
символ «+» і цілі числа – ні. Символи, які можна замінити другими символами
називаються нетермінальними, а символи, які не можна замінити називають –
термінальними. Правила, які вказують, як заміняти символи називають – продукціями.
Позначимо продукцію (чи правило), зміст якого в тому, що add можна замінити на А+В,
через add A+B.
Таким чином, правило для першого з наведених прикладів має вигляд:
a d d A B
A 0 B 0
A 1 B 1
... ... ... ... ... ...
A 9 B 9
Якщо додати правило, що А можна замінити на А+В, то
a d d A B
A A B
A 0
B 0
A 1
... ... ...
... ... ...
B 9
A 9
Граматика мови програмування має правила 2-ох типів:
1) визначає синтаксичні конструкції мови і досить легко піддається
формальному опису;
2) визначає семантичні обмеження і, як правило, подається в
неформальній формі.
Синтаксис мови – це набір правил, які визначають допустимі конструкції мови.
Синтаксис задає набір ланцюгів символів, які належать мові, наприклад, 3+2 –
арифметичний вираз, а 32+ – ні.
Семантика мови – це розділ мови, який визначає значення речень мови, визначає
«зміст мови» (наприклад, 3+2 – це сума 3 і 2, а 3+2=5 – істинний вираз).
Лексика – сукупність слів мови. Лексика – це конструкція, яка складається з слів
алфавіту мови і не містить в собі інших конструкцій (містить тільки елементарні символи)
ключові слова, ідентифікатори, константи, мітки, знаки.
6