Checkmark on Circle.png

PL/0

Aus KGS-Wiki
Version vom 6. September 2023, 12:03 Uhr von Sn (Diskussion | Beiträge) (Seite angelegt.)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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.