no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | programmieren:ebnf:start [2021/12/29 11:40] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Beschreibung der Syntax durch EBNF ====== | ||
+ | Bisher haben wir die Syntax (also Struktur) unserer einfachen Programmiersprache mit einfachen Sätzen beschrieben. Das reicht aus, solange Autor und Leser im Kopf dieselbe Vorstellung von syntaktisch korrekten programmen (bislang: mathematischen Termen) haben. Zur Beschreibung umfangreicherer Programmiersprachen verwendet man eine eigene Beschreibungssprache, | ||
+ | |||
+ | Die EBNF unserer bisherigen Programmiersprache sieht so aus: | ||
+ | |||
+ | <code bnf> | ||
+ | Ziffer | ||
+ | Buchstabe = " | ||
+ | Zahl = Ziffer { Ziffer | " | ||
+ | Text = Buchstabe { Buchstabe | Ziffer | " | ||
+ | Term = " | ||
+ | Produkt = Term | Term " | ||
+ | Quotient = Term | Term "/" | ||
+ | ProduktQuotient = Produkt | Quotient ; | ||
+ | Summe = ProduktQuotient | ProduktQuotient " | ||
+ | Differenz = ProduktQuotient | ProduktQuotient " | ||
+ | </ | ||
+ | |||
+ | Natürlich ist die Definition von '' | ||
+ | |||
+ | Eine in EBNF beschriebene Grammatik der Programmiersprache Java findet man beispielsweise hier: [[http:// | ||
+ | |||
+ | Natürlich beschreibt die Grammatik nicht die vollständige Programmierpsrache. Sie legt nur fest, was als syntaktisch richtig akzeptiert wird. Wie die Programmiersprache zu deuten ist (**Semantik** der Sprache) muss ergänzend festgelegt werden. Eine Spezifikation der Semantik von Java findet sich hier: [[http:// | ||
+ | |||
+ | Jetzt werden wir die [[programmieren: | ||