Notacja Backhusa-Naura

Notacja Backhusa-Naura dopuszcza następujące znaki (symbole metajęzykowe):

<,> - nawiasy ostre określają definiowane pojęcie,

 

::= - oznacza „jest zdefiniowane jako”

 

 | - oznacza lub.

 

<typ_zmiennej>::= = integer | real

<deklaracja_zmiennej>::= var

<operator_przypisania>:: = :=

<operator_arytmetyczny>::= + | - | * | /

<operator_porownania>::= = | < | > | <>

<mala_litera>::=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

<duza_litera>::=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

<cyfra>::=0|1|...|9

<liczba>::={0|…|9}

<litera>::=<mala_litera>|<duza_litera>

<znak>::=<cyfra>|<litera>

<nazwa>::=<litera>{<znak>}

<zmienna>::=<nazwa>

<poczatek_koniec_bloku>::= begin | end

<operacje_wejscia_wyjscia>:: = read | write

<jeśli>:: = if

<to>:: = then

<p_for>::= for

<p_to>::= to

<wykonuj>:: = do

<seperator_zdania>:: = ;

<seperator_deklaracji>:: = :

<seperator_liczb>:: = .

<nawias_okragly>:: = ( | )

<nazwa_programu>::=<nazwa>

p_program::= program

 

<deklaracja_zmiennych>::=<deklaracja_zmiennej><zmienna><seperator_deklaracji><typ_zmiennej><separator_zdania>

<czytaj_pisz>:: = <operacja_wejscia_wyjscia> <nawias_okragly> <zmienna>< nawias_okragly>< seperator_zdania>

<operacja_warunkowa>:: = <jeśli><nawias_okragly><zmienna>|<liczba>< operacja_porownania><zmienna>|<liczba><nawias_okragly> <to>< blok>

<blok>:: = <poczatek_koniec_bloku>< operacje>< poczatek_koniec_bloku> <seperator_zdania> |<poczatek_koniec_bloku>< operacje> <poczatek_koniec_bloku>< seperator_liczb>

 

<petla_for>::= <p_for><nazwa>< operator_przypisania><liczba>|<nazwa>< p_to><liczba>|<zmienna><wykonuj><blok>

 

 

 

<operacje>:: = <czytaj_pisz> | <operacja_arytmetyczna> | <operacja_przypisania> | <blok> | <operacja_warunkowa> | <petla_for>

 

Program

<definicja_programu>::=<p_program>< nazwa_programu><seperator_zdania>

<deklaracja_zmiennej>

{<deklaracje_zmiennych>}<blok>