Розширені Бекуса-наура форми (рбнф) - студопедія

Для підвищення зручності і компактності опису, доцільно вести в мову додаткові конструкції. Існують різні розширені форми метамовою, незначно відрізняються один від одного. Їх різноманітність найчастіше пояснюється бажанням розробників мов програмування по-своєму описати створюваний мову. До прикладів таких широко відомих метамовою можна віднести: метамова PL / I, метамова Вірта, метамова Керніган-Рітчі, що описує Сі. Найчастіше такі мови називаються розширеними формами Бекуса-Наура (РБНФ).

Зокрема, РБНФ, використовувані Віртом, мають такі особливості:

- квадратні дужки «[« і «]» означають, що укладена в них синтаксична конструкція може бути відсутнім;

- фігурні дужки «» означають її повторення (можливо, 0 раз);

- круглі дужки «(» та «)» використовуються для обмеження альтернативних конструкцій;

- поєднання фігурних дужок і косою риси «» використовується для позначення повторення один і більше разів. Нетермінальні символи зображуються словами, що виражають їх інтуїтивний сенс і написаними російською мовою.

Якщо нетермінал складається з декількох смислових слів, то вони повинні бути написані разом. В цьому випадку для підвищення зручності в сприйнятті фрази доцільно кожне її слово починати з великої літери або розділяти слова у фразах символом підкреслення. Термінальні символи зображуються словами, написаними літерами латинського алфавіту (зарезервовані слова) або ланцюжками знаків, укладеними в лапки. Синтаксичним правилам передує знак «$» на початку рядка. Кожне правило закінчується знаком «.» (Крапка). Ліва частина правила відділяється від правої знаком «=» (так само), а альтернативи - вертикальною лінією «|». Відповідно до цих правил синтаксис ідентифікатора буде виглядати наступним чином:

$ Буква = "" A "|" B "|" C "|" D "|" E "|" F "|" G "|" H "|" I "|" J "|" K "|" L "|" M "|" N "|" O "|" P "|" Q "|" R "|" S "|" T "|" U "|" V "|" W "|" X "| "Y" | "Z" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h | "I" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u "|" v "|" w "|" x "|" y "|" z ".

У качстве прикладу опишемо синтаксис демонстраційного мови програмування за допомогою расіренних форм Бекуса-Наура.

Схожі статті