Syntaktický diagram

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Syntaktické diagramy jsou grafickou reprezentací bezkontextových gramatik. Lze je považovat za grafický protějšek metajazyků jako Backusova-Naurova forma (BNF) nebo rozvinutá Backusova-Naurova forma (EBNF). Zatímco pro zpracování počítačem, např. při konstrukci překladačů, jsou vhodnější textové reprezentace gramatik jako BNF nebo EBNF, pro člověka je zpravidla srozumitelnější grafická reprezentace například syntaktickými diagramy. K prvním použitím syntaktických diagramů patří kniha „Pascal User Manual“ od Niklause Wirtha (diagramy začínají na stránce 47) a manuál interpretu příkazů CANDE firmy Burroughs. K novějším příkladům použití syntaktických diagramů patří kanonické definice JSON formátů pro výměnu dat.

Princip syntaktických diagramů

Pro reprezentaci bezkontextové gramatiky se používá sada syntaktických diagramů. Každý diagram reprezentuje všechna pravidla, jejichž levá strana je tvořena stejným neterminálem. +more Hlavní diagram odpovídá pravidlům, která mají na levé straně počáteční symbol gramatiky, a reprezentuje jazyk tak, že slovo patří do jazyka právě tehdy, když jej lze vyjádřit nějakou cestou v hlavním diagramu.

Každý diagram má vstupní bod a koncový bod. Diagram popisuje možné cesty mezi těmito dvěma body průchodem neterminály a terminály. +more Terminály jsou reprezentovány ovály a neterminály obdélníky.

Příklad

BNF reprezentace gramatiky pro aritmetický výraz může vypadat takto:

::= | "+" ::= | "*" ::= | | "(" ")" ::= "x" | "y" | "z" ::= | ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

Tuto gramatiku lze vyjádřit také v EBNF:

expression = term | expression, "+" , term; term = factor | term, "*" , factor; factor = constant | variable | "(" , expression , ")"; variable = "x" | "y" | "z"; constant = digit , {digit}; digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";

Reprezentace této gramatiky pomocí syntaktických diagramů je následující:

Soubor:Example syntax diagram 3.svg

Odkazy

Související články

Rekurzivní přechodová síť * Backusova-Naurova forma (BNF) * Rozvinutá Backusova-Naurova forma (EBNF)

Reference

První odkaz neumožňuje přístup z cizích domén. Soubor je však dostupný na [http://www.standardpascal.org/The_Programming_Language_Pascal_1973.pdf] .

Externí odkazy

[url=http://www. json. +moreorg/]Webové sídlo JSON obsahující syntaktické diagramy[/url] * [url=http://dotnet. jku. at/applications/Visualizer/]Generátor syntaktických digramů z EBNF[/url] * [url=http://www. informatik. uni-freiburg. de/~thiemann/haskell/ebnf2ps/]Převodník z EBNF do syntaktických diagramů v PostScriptu[/url] * [url=http://karmin. ch/ebnf/index]EBNF Parser a Renderer[/url].

* [url=http://www. yorku. +moreca/jmason/asdgram. htm]Gramatiky rozšířených syntaktických diagramů Augmented Syntax Diagram, ASD[/url] * [url=http://www. asd-networks. com]Demonstrační web aplikace ASD[/url] * [url=https://github. com/gbrault/railroad-diagramy/blob/gh-stránky/live/doc/readme. md/]Syntax Diagram representation by Function Basis (SRFB) a svg generátor[/url].

Kategorie:Formální jazyky Kategorie:Diagramy

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top