Бэкуса-Наура формы (БНФ)

Метаязык, предложенный Бэкусом и Науром, впервые использовался для описания синтаксиса реального языка программирования Алгол 60. Наряду с новыми обозначениями метасимволов, в нем использовались содержательные обозначения нетерминалов. Это сделало описание языка нагляднее и позволило в дальнейшем широко использовать данную нотацию для описания реальных языков программирования. Были использованы следующие обозначения:

– символ «::=» отделяет левую часть правила от правой;

– нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки «<» и «>»;

– терминалы – это символы, используемые в описываемом языке;

– каждое правило определяет порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты «|».

Пример описания идентификатора с использованием БНФ:

1. <буква>::= А|В|С|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

2. <цифра>::= 0|1|2|3|4|5|6|7|8|9

3. <идентификатор>::= <буква> | <идентификатор> <буква> |
<идентификатор> <цифра>

Правила можно задавать и раздельно:

<идентификатор>:: = <буква>

<идентификатор>:: = <идентификатор> <буква>

<идентификатор>:: = <идентификатор> <цифра>


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: