ВУЗ:
Составители:
6
I → C | IC | IR
N → R | NR
C → 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
R → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Формы Бэкуса-Наура (БНФ)
Метаязык, предложенный Бэкусом и Науром, использует следующие обо-
значения:
-
символ «::=» отделяет левую часть правила от правой (читается:
«определяется как»);
-
нетерминалы обозначаются произвольной символьной строкой, за-
ключенной в угловые скобки «<» и «>»;
-
терминалы - это символы, используемые в описываемом языке;
-
правило может определять порождение нескольких альтернативных
цепочек, отделяемых друг от друга символом вертикальной черты «|» (читается:
«или»).
Пример 2.2. Определение понятия «идентификатор» с использованием
БНФ имеет вид:
<идентификатор> ::= <буква> | <идентификатор> <буква>
| <идентификатор> <цифра>
<буква> :: =
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
Расширенные формы Бэкуса-Наура (РБНФ)
Для повышения удобства и компактности описаний, в РБНФ вводятся
следующие дополнительные конструкции (метасимволы):
-
квадратные скобки «[» и «]» означают, что заключенная в них синтак-
сическая конструкция может отсутствовать;
-
фигурные скобки «{» и «}» означают повторение заключенной в них
синтаксической конструкции ноль или более раз;
-
сочетание фигурных скобок и косой черты «{/» и «/}» используется
для обозначения повторения один и более раз;
-
круглые скобки «(» и «)» используются для ограничения альтернатив-
ных конструкций.
Пример 2.3. В соответствии с данными правилами синтаксис модельного
языка
М будет выглядеть следующим образом:
<буква> ::= 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
<идентификатор> ::= <буква> { <буква> | <цифра> }
<число> ::= {/< цифра> /}
<ключевое_слово> ::=
program | var | begin | end | int | bool | read | write | if |
I → C | IC | IR N → R | NR C→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 R→0|1|2|3|4|5|6|7|8|9 Формы Бэкуса-Наура (БНФ) Метаязык, предложенный Бэкусом и Науром, использует следующие обо- значения: - символ «::=» отделяет левую часть правила от правой (читается: «определяется как»); - нетерминалы обозначаются произвольной символьной строкой, за- ключенной в угловые скобки «<» и «>»; - терминалы - это символы, используемые в описываемом языке; - правило может определять порождение нескольких альтернативных цепочек, отделяемых друг от друга символом вертикальной черты «|» (читается: «или»). Пример 2.2. Определение понятия «идентификатор» с использованием БНФ имеет вид: <идентификатор> ::= <буква> | <идентификатор> <буква> | <идентификатор> <цифра> <буква> :: = 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 Расширенные формы Бэкуса-Наура (РБНФ) Для повышения удобства и компактности описаний, в РБНФ вводятся следующие дополнительные конструкции (метасимволы): - квадратные скобки «[» и «]» означают, что заключенная в них синтак- сическая конструкция может отсутствовать; - фигурные скобки «{» и «}» означают повторение заключенной в них синтаксической конструкции ноль или более раз; - сочетание фигурных скобок и косой черты «{/» и «/}» используется для обозначения повторения один и более раз; - круглые скобки «(» и «)» используются для ограничения альтернатив- ных конструкций. Пример 2.3. В соответствии с данными правилами синтаксис модельного языка М будет выглядеть следующим образом: <буква> ::= 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 <идентификатор> ::= <буква> { <буква> | <цифра> } <число> ::= {/< цифра> /} <ключевое_слово> ::= program | var | begin | end | int | bool | read | write | if | 6
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »