PL/0
Aus KGS-Wiki
PL/0 ist eine vereinfachte "Programmiersprache", die aus sehr wenigen Sprachkonstrukten besteht und die sehr kompakt mit folgender Grammatik in EBNF beschrieben werden kann:
<program> = <block> .
<block> = [ CONST <ident> = <number> { , <ident> = <number> } ; ]
[ VAR <ident> { , <ident> } ; ]
{ PROCEDURE <ident> ; <block> ; } <statement> .
<statement> = [ <ident> := <expression> | CALL <ident> | ? <ident> | ! <expression> |
BEGIN <statement> { ; <statement> } END |
IF <condition> THEN <statement> |
WHILE <condition> DO <statement> ] .
<condition> = ODD <expression> |
<expression> ( = | # | < | <= | > | >= ) <expression> .
<expression> = [ + | - ] <term> { ( + | - ) <term> } .
<term> = <factor> { ( * | / ) <factor> } .
<factor> = <ident> | <number> | ( <expression> ) .
Als <ident>
werden alle möglichen Bezeichner behandelt, als <number>
numerische Werte. Die detaillierten Regeln dazu ersparen wir uns an dieser Stelle.