ВУЗ:
Составители:
1 Основы теории
1.1 Нормальные формы Бэкуса
Нормальные формы Бекуса, или металингвистические формулы,
являются наиболее распространенным метасинтаксическим языком,
используемым для описания многих языков программирования.
Каждая металингвистическая формула описывает правила построения
некоторой конструкции языка и состоит из двух частей: в левой части
находится металингвистическая переменная, обозначающая
соответствующую конструкцию; далее следует металингвистическая связка
": : = " ,имеющая смысл "по определению равно"; в правой части указывается
один или несколько вариантов построения конструкции, обозначенной в
левой части. Для того, чтобы построить определяемую формулой
конструкцию, нужно выбрать некоторый вариант построения правой части
формулы и подставить вместо каждой металингвистической переменной
соответствующие цепочки основных символов. Варианты правой части
формулы разделяются металингвистической связкой "|"., имеющей значение
"или". Металингвистическая переменная обозначается словами языка
разработчика, заключенными в угловые скобки.
БНФ используются для описания формальных языков.
Пример : <имя>::=<буква>|<имя><буква>|<имя><цифра>
И::=Б|ИБ|ИЦ
И,Б,Ц – метапеременные или нетерминальные символы (нетерминалы)
Терминальные символы (терминалы) – символы из алфавита языка.
Цепочка (строка)- любая последовательность из терминальных и
нетерминальных символов.
Терминальная цепочка – цепочка из терминальных символов
Формальный язык – некоторое множество из терминальных цепочек.
1.1.1 Описание модельного языка MPL
P::=program Д';Д.
Д':: = var Д{,Д}
Д :: = I{,I}: [int, bool]
В :: = begin S {; S} end
S :: = I:=E |if E then S else S| while E do S| B| read (I)| write (E)
E :: = E1|E1[=,≠,<,≤,>,≥] El
El :: = T|T+E1|T-E1|T El
T :: = F|F*T|F/T| F∩T
F :: = I|N|L|¬F|(E)
L :: = true | false
6
1 Основы теории 1.1 Нормальные формы Бэкуса Нормальные формы Бекуса, или металингвистические формулы, являются наиболее распространенным метасинтаксическим языком, используемым для описания многих языков программирования. Каждая металингвистическая формула описывает правила построения некоторой конструкции языка и состоит из двух частей: в левой части находится металингвистическая переменная, обозначающая соответствующую конструкцию; далее следует металингвистическая связка ": : = " ,имеющая смысл "по определению равно"; в правой части указывается один или несколько вариантов построения конструкции, обозначенной в левой части. Для того, чтобы построить определяемую формулой конструкцию, нужно выбрать некоторый вариант построения правой части формулы и подставить вместо каждой металингвистической переменной соответствующие цепочки основных символов. Варианты правой части формулы разделяются металингвистической связкой "|"., имеющей значение "или". Металингвистическая переменная обозначается словами языка разработчика, заключенными в угловые скобки. БНФ используются для описания формальных языков. Пример : <имя>::=<буква>|<имя><буква>|<имя><цифра> И::=Б|ИБ|ИЦ И,Б,Ц – метапеременные или нетерминальные символы (нетерминалы) Терминальные символы (терминалы) – символы из алфавита языка. Цепочка (строка)- любая последовательность из терминальных и нетерминальных символов. Терминальная цепочка – цепочка из терминальных символов Формальный язык – некоторое множество из терминальных цепочек. 1.1.1 Описание модельного языка MPL P::=program Д';Д. Д':: = var Д{,Д} Д :: = I{,I}: [int, bool] В :: = begin S {; S} end S :: = I:=E |if E then S else S| while E do S| B| read (I)| write (E) E :: = E1|E1[=,≠,<,≤,>,≥] El El :: = T|T+E1|T-E1|T El T :: = F|F*T|F/T| F∩T F :: = I|N|L|¬F|(E) L :: = true | false 6