Бэкуса-Наура формы (БНФ)
Метаязыки Хомского и Хомского-Щутценберже использовались в математической литературе при описании простых абстрактных языков. Метаязык, предложенный Бэкусом и Науром, впервые использовался для описания синтаксиса реального языка программирования Алгол 60. Наряду с новыми обозначениями метасимволов, в нем использовались содержательные обозначения нетерминалов. Это сделало описание языка нагляднее и позволило в дальнейшем широко использовать данную нотацию для описания реальных языков программирования. Были использованы следующие обозначения:
· символ «::=» отделяет левую часть правила от правой (иногда вместо знака старых монографий «::=» ставят знак «®» или «Þ»);
· нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки "<" и ">";
· терминалы - это символы, используемые в описываемом языке;
· каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты "|".
Пример описания идентификатора с использованием БНФ:
<буква> :: = А|В|С|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
<цифра> :: = 0|1|2|3|4|5|6|7|8|9
<идентификатор> ::= <буква> | <идентификатор><буква> |
<идентификатор><цифра>
Правила можно задавать и раздельно:
<идентификатор> :: = <буква>
<идентификатор> :: = <идентификатор> <буква>
<идентификатор> :: = <идентификатор> <цифра>
Дата добавления: 2015-10-09; просмотров: 797;