Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

9. Syntaxdiagramme und Backus-Naur-Form (BNF)

Ähnliche Präsentationen


Präsentation zum Thema: "9. Syntaxdiagramme und Backus-Naur-Form (BNF)"—  Präsentation transkript:

1 9. Syntaxdiagramme und Backus-Naur-Form (BNF)
Programmiersprachen häufig definiert durch kontextfreie Grammatiken in BNF mit gewissen Zusatzbedingungen BNF statt A -> w1 A -> w2 ... A -> wn A -> w1 | w2 | ... | wn A -> xz A -> xyz A -> x(y)z A -> xz A -> xBz B -> yB B -> y A -> x{y}z

2 Symbol Bedeutung Beispiel
= ist äquivalent zu A = B + C + Sequenz (impliziert keine Ordnung) X = X1 + X2 + X3 [  ] 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 *

3 While-Berechenbarkeit
Ein While-Programm besteht aus folgenden Komponenten: Variablen: x0, x1, x2, ... 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 P1 und P2 While-Programme sind, so auch P1;P2 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

4 Beispiel Multiplikation: Eingabe: x1, x2, Ausgabe: x0 WHILE x1 ≠ 0 DO
END; x1 := x1 - 1 END

5 Syntax von WHILE-Programmen in BNF
-> <Zuweisung> | <Programm>; <Programm> | WHILE <Test> DO <Programm> END <Zuweisung> <Variable> := <Variable> + <Konstante> | <Variable> := <Variable> - <Konstante> <Variable> x0 | x1 | x2 | ... <Konstante> 0 | 1 | 2 | ... <Test> <Variable> ≠ 0 Konvention: Variablen in < >-Klammern, alle anderen Symbole Terminalsymbole

6 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.

7 Seminaranmeldung Als Teilnehmer zu nachfolgenden Seminaren wird angemeldet: Titel Vorname Name vom bis Anmeldebestätigung und Rechnung erbeten an: Firma Straße / Postfach LKZ ORT PLZ Telefon Veranstaltungs-Nr. Seminarbezeichnung

8 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 Y 1 Z erzeugte Sprache: X0, Y0, Z0, X1, Y1, Z1, X00, Y00, Z00, X01, Y01, Z01, ...

9 Syntaxdiagramme für Katzenbeispiel
Satz: Subjekt jagt Objekt Subjekt: Hund der Adjektiv Katze die das Objekt: wie Subjekt Adjektiv: kleine bissige große

10 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: unzulässig als Bezeichner sind: BEGIN, END, WHILE, ...

11 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 Algorithmus auszudrücken !

12 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.

13 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“)

14 CASE Bedingung 1: Anweisung 1 c) Mehrfachauswahl
... 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.

15 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 {Abbruchbedingung}

16 b) Solange-noch-Schleife
Die Anweisungen in der Schleife werden ausgeführt, solange die Bedingung erfüllt ist: WHILE Bedingung DO Anweisung 1 {Rumpf der Schleife} Anweisung n Anweisung n + 1 {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.

17 Symbole für Struktogramme (1)
Aktion Strukturblock Verzweigung Fallunterscheidung nicht erfüllt erfüllt Bedingung Aktion 1 Aktion 2 Fallauswahl 1 2 ... n Aktion 1 Aktion 2 ... Aktion n

18 Symbole für Struktogramme 2
WHILE-Bedingung Solange-noch-Schleife Solange-bis-Schleife Aktion Aktion UNTIL-Bedingung

19 Euklidischer Algorithmus (1)
Struktogramm

20 Darstellungsmittel für Programmablaufpläne (1)
Aktion für Aktionen für Verzweigungen für Eingaben und Ausgaben N J Bedingung Eingabe X

21 Darstellungsmittel für Programmablaufpläne (2)
Übergangsstellen zwischen mehreren Diagrammen für Anfang und Ende Ablauflinie und Zusammenführung Unterprogramm A A Anfang Ende vollständige Aufstellung: Norm DIN 66 01 (Sinnbilder für Datenfluß- und Programmablaufpläne)

22 Euklidischer Algorithmus (2)
Programmablaufplan

23 Euklidischer Algorithmus (3)
Programmprotokoll ausgeführte Aktion


Herunterladen ppt "9. Syntaxdiagramme und Backus-Naur-Form (BNF)"

Ähnliche Präsentationen


Google-Anzeigen