9 Syntaxdiagramme und BackusNaurForm BNF Programmiersprachen hufig definiert
9. Syntaxdiagramme und Backus-Naur-Form (BNF) Programmiersprachen häufig definiert durch kontextfreie Grammatiken in BNF mit gewissen Zusatzbedingungen G. Heyer BNF statt A -> w 1 | w 2 |. . . | wn A -> w 1 A -> w 2. . . A -> wn A -> x(y)z A -> xyz A -> x{y}z A -> x. Bz B -> y. B B -> y 1 Digitale Informationsverarbeitung
Symbol Bedeutung Beispiel = ist äquivalent zu A=B+C + Sequenz (impliziert keine Ordnung) X = X 1 + X 2 + X 3 [ ] Auswahl (entweder. . . oder) A = [B | C] {} Wiederholung A={B} M{ }N Wiederholung von M bis N A = 1 { B } 10 ( ) Option = 0 { }1 A=B+(C) * * Kommentar A = X + Y * Kommentar * G. Heyer 2 Digitale Informationsverarbeitung
While-Berechenbarkeit Ein While-Programm besteht aus folgenden Komponenten: Variablen: x 0, x 1, x 2, . . . Konstanten: 0, 1, 2, . . . Trennsymbole: ; : = Operationszeichen: + - ? Schlüsselwörter: WHILE DO END Syntax von While-Programmen, induktive Definition: 1. Eine Wertzuweisung der Form xi : = xj + c oder xi : = xj - c (c Konstante) ist ein While-Programm 2. Falls P 1 und P 2 While-Programme sind, so auch P 1; P 2 3. Falls P While-Programm ist, so ist auch WHILE xi ≠ 0 DO P END ein While-Programm 4. Nur die durch 1 -3 beschiebenen Konstrukte sind While-Programme G. Heyer 3 Digitale Informationsverarbeitung
Beispiel Multiplikation: Eingabe: x 1, x 2, Ausgabe: x 0 WHILE x 1 ≠ 0 DO x 3 : = x 2; WHILE x 3 ≠ 0 DO x 0 : = x 0 + 1; x 3 : = x 3 - 1 END; x 1 : = x 1 - 1 END G. Heyer 4 Digitale Informationsverarbeitung
Syntax von WHILE-Programmen in BNF <Programm> -> <Zuweisung> | <Programm>; <Programm> | WHILE <Test> DO <Programm> END <Zuweisung> -> <Variable> : = <Variable> + <Konstante> | <Variable> : = <Variable> - <Konstante> <Variable> -> x 0 | x 1 | x 2 |. . . <Konstante> -> 0 | 1 | 2 |. . . <Test> -> <Variable> ≠ 0 Konvention: Variablen in < >-Klammern, alle anderen Symbole Terminalsymbole G. Heyer 5 Digitale Informationsverarbeitung
Die Kundendatei besteht aus keinem, einem oder beliebig vielen Kundeneinträgen. Der Kundeneintrag setzt sich zusammen aus der Personal-Nr. , dem Namen, der Adresse und dem Umsatz (Muß-Angaben). Optional können noch das Geburtsdatum und die Funktion (im Unternehmen) angegeben sein (Kann-Angaben). Bei der Adresse wird entweder die Straße und die Haus-Nr. oder die Postfachnummer angegeben, gefolgt vom optionalen Länderkennzeichen, PLZ, Ort und den optionalen Angaben Telefon und Fax. G. Heyer 6 Digitale Informationsverarbeitung
Seminaranmeldung Als Teilnehmer zu nachfolgenden Seminaren wird angemeldet: Titel Vorname Veranstaltungs-Nr. Name Seminarbezeichnung vom bis Anmeldebestätigung und Rechnung erbeten an: Titel Vorname Firma PLZ G. Heyer Name Straße / Postfach ORT LKZ Telefon 7 Digitale Informationsverarbeitung
Syntaxdiagramme • • Graphische Repräsentation kontextfreier Grammatiken. Pfeilrichtung gibt an, wie Diagramme zu durchlaufen sind. Alternative Durchläufe sind möglich. Rechtecke entsprechen Variablen, werden beim Durchlauf ersetzt durch Syntaxdiagramm gleichen Namens. • Ovale geben jeweils produzierte Terminalzeichen an. • Die Folge von Terminalzeichen, die bei einem vollständigen Durchlauf produziert wird, ist ein Element der erzeugten Sprache. Beispiel: X 0 Y 1 Z erzeugte Sprache: X 0, Y 0, Z 0, X 1, Y 1, Z 1, X 00, Y 00, Z 00, X 01, Y 01, Z 01, . . . G. Heyer 8 Digitale Informationsverarbeitung
Syntaxdiagramme für Katzenbeispiel Satz: Subjekt jagt Subjekt: Objekt Hund der Adjektiv Katze die das Objekt: wie Subjekt Adjektiv: kleine bissige große G. Heyer 9 Digitale Informationsverarbeitung
Bemerkungen • Beschreibung von Programmiersprachen oft in Form von Syntaxdiagrammen • Nicht in allen Fällen möglich bzw. praktisch (Kontextabhängigkeit) • Oft werden auch Mischformen aus Syntaxdiagrammen und zusätzlichen Kontextbedingungen angegeben, etwa: Buchstabe Bezeichner: Buchstabe Ziffer Kontextbedingungen: G. Heyer unzulässig als Bezeichner sind: BEGIN, END, WHILE, . . . 10 Digitale Informationsverarbeitung
Ablaufsteuerung Zur Ausführung eines Algorithmus benötigt man verschiedene Arten von Kontrollstrukturen, v. a. - Sequenz - Selektion - Iteration Sequenz, Selektion und Iteration genügen, um jeden G. Heyer Algorithmus auszudrücken ! 11 Digitale Informationsverarbeitung
Sequenz (Folge von Anweisungen) 1. Zu einem Zeitpunkt wird nur ein Schritt ausgeführt. 2. Jeder Schritt wird genau einmal ausgeführt: keiner wird wiederholt, keiner wird ausgelassen. 3. Die Reihenfolge, in der die Schritte ausgeführt werden, ist die gleiche Folge, in der sie niedergeschrieben sind (d. h. nacheinander). 4. Mit der Beendigung des letzten Schrittes endet der gesamte Algorithmus. Die Ausführung eines Algorithmus ist sehr starr, wenn nur die Sequenz als Kontrollstruktur eingesetzt wird. G. Heyer 12 Digitale Informationsverarbeitung
Selektion (Auswahl, bedingte Anweisung) a) Einfache Form IF Bedingung THEN Anweisung(en) b) Bedingte Anweisung mit Alternative (allgemeine Form): IF Bedingung THEN Anweisung 1 ELSE Anweisung 2 Die einfache Form ist ein Spezialfall der allgemeinen Form, bei der Anweisung 2 die leere Anweisung ist („tue nichts“) G. Heyer 13 Digitale Informationsverarbeitung
c) Mehrfachauswahl CASE Bedingung 1: Anweisung 1 Bedingung 2: Anweisung 2. . . Bedingung n: Anweisung n ELSE Anweisung n + 1 Die Bedingungen 1 bis n müssen sich gegenseitig ausschließen; d. h. es dürfen nicht zwei Bedingungen gleichzeitig erfüllt sein. G. Heyer 14 Digitale Informationsverarbeitung
Iteration (Wiederholung, Schleife) a) Solange-bis-Schleife Wiederholte Ausführung einer Anweisung (oder einer Folge von Anweisungen), bis eine Abbruchbedingung erfüllt ist. REPEAT Anweisung(en) UNTIL Bedingung G. Heyer {Abbruchbedingung} 15 Digitale Informationsverarbeitung
b) Solange-noch-Schleife Die Anweisungen in der Schleife werden ausgeführt, solange die Bedingung erfüllt ist: WHILE Bedingung DO Anweisung 1. . . Anweisung n + 1 {Rumpf der Schleife} {nicht mehr in der Schleife} • Unterschied zur ersten Form: Die Bedingung wird vor der Ausführung des Schleifenrumpfes geprüft. • Vorteilhaft, wenn damit gerechnet werden muß, daß in manchen Fällen bereits beim erstmaligen Eintritt in die Schleife die Abbruchbedingung erfüllt ist, der Schleifenrumpf also nicht ausgeführt werden soll. • Die beiden Formen der Iteration sind äquivalent, sie lassen sich (unter Verwendung der bedingten Anweisung) ineinander überführen. G. Heyer 16 Digitale Informationsverarbeitung
Symbole für Struktogramme (1) Aktion Strukturblock Bedingung Verzweigung erfüllt nicht erfüllt Aktion 1 Aktion 2 Fallauswahl 1 2 . . . Fallunterscheidung Aktion 1 Aktion 2 G. Heyer 17 . . . n Aktion n Digitale Informationsverarbeitung
Symbole für Struktogramme 2 WHILE-Bedingung Solange-noch-Schleife Aktion Solange-bis-Schleife UNTIL-Bedingung G. Heyer 18 Digitale Informationsverarbeitung
Euklidischer Algorithmus (1) Struktogramm G. Heyer 19 Digitale Informationsverarbeitung
Darstellungsmittel für Programmablaufpläne (1) Aktion N Bedingung für Aktionen J für Verzweigungen für Eingaben und Ausgaben Eingabe X G. Heyer 20 Digitale Informationsverarbeitung
Darstellungsmittel für Programmablaufpläne (2) A Anfang A Ende Übergangsstellen zwischen mehreren Diagrammen für Anfang und Ende Ablauflinie und Zusammenführung Unterprogramm vollständige Aufstellung: Norm DIN 66 01 (Sinnbilder für Datenfluß- und Programmablaufpläne) G. Heyer 21 Digitale Informationsverarbeitung
Euklidischer Algorithmus (2) Programmablaufplan G. Heyer 22 Digitale Informationsverarbeitung
Euklidischer Algorithmus (3) Programmprotokoll ausgeführte Aktion G. Heyer 23 Digitale Informationsverarbeitung
- Slides: 23