EBNF, Algorytmy


Dodatek Notacja Backusa-Naura (BNF)

Definiując język programowania należy określić zarówno jego składnię, tzn. zasady budowania słów i zdań jak również semantykę, tzn. zasady interpretacji tych konstrukcji. Przykładem takiego formalizmu jest notacja Backhusa-Naura. Dopuszcza ona następujące znaki (symbole metajęzykowe):

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

::= - oznacza „jest zdefiniowane jako”

| - oznacza lub.

Notacja BNF opisuje formuły rekurencyjne.

Rozszerzona notacja Backusa-Naura (EBNF)

Do BNF dodano dwa symbole:

{,} - wielkość ujęta w nawiasy {,} może być powtórzone dowolną liczbę razy.

Notacja EBNF opisuje formuły iteracyjne.

Notacje BNF i EBNF są notacjami równoważnymi, tzn. definiują tę samą klasę języków (język opisywany w jednej klasie jest również zdefiniowany w drugiej klasie).

Przykładowo indentyfikator za pomocą BNF możemy zdefiniować następująco:

<identyfikator>::=<litera>|<litery_cyfry>

<litery_cyfry>::=<litera_cyfra>|<litery_cyfry><litera_cyfra>

<litera_cyfra>::=<litera>|<cyfra>

<litera>=”a”|”b”|”c”|...|”z”|”A”|...|”Z”|”_”

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

Te zależności są rekurencyjne.

Zapis identyfikatora za pomocą notacj EBNF

<identyfikator>::=<litera>{<litera_cyfra>}

<litera_cyfra>:=<litera>|<cyfra>

<litera>=”a”|”b”|”c”|...|”z”|”A”|...|”Z”|”_”

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

Te zależności są zależnościami iteracyjnymi.

Spotyka się jeszcze diagramy syntaktyczne, które są graficzną postacią pojęcia. Np. za pomocą diagramów syntaktycznych pojęcie identyfikatora można przedstawić nastepująco:

identyfikator0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
litera

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

cyfra

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Ważną rolą zmiennej jest to, że może ona opisywać pewien stan maszyny cyfrowej (np. zawartość jednej lub kilku komórek pamięci operacyjnej).

Fragment strony: http://ii3.ap.siedlce.pl/~mirek/programowanie/w2.doc

Wykład Programowanie II - I semestr

2

litera

litera

cyfra

a

b

Z

_

....

9

8

1

0

....



Wyszukiwarka

Podobne podstrony:
Układy Napędowe oraz algorytmy sterowania w bioprotezach
5 Algorytmy
5 Algorytmy wyznaczania dyskretnej transformaty Fouriera (CPS)
Tętniak aorty brzusznej algorytm
Algorytmy rastrowe
Algorytmy genetyczne
Teorie algorytmow genetycznych prezentacja
Algorytmy tekstowe
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
ALGORYTM EUKLIDESA
Algorytmy z przykladami tp 7 0
ALGORYT8

więcej podobnych podstron