Programmierkurs Java Teil Imperative Programmierung Unterrichtseinheit 3 Syntaxdiagramme
- Slides: 15
Programmierkurs Java Teil Imperative Programmierung Unterrichtseinheit 3 Syntaxdiagramme Dr. Dietrich Boles Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 1
Gliederung Ø Compiler Ø Syntaxdiagramme Ø BNF und EBNF Ø Zusammenfassung Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 2
Compiler Lexikalik: gültige Zeichen und Wörter der Sprache Syntax: korrekter Aufbau von Sätzen der Sprache Semantik: Bedeutung von Sätzen der Sprachen Pragmatik: Einsatzbereich einer Sprache Quellprogramm Lexikalische Analyse (Scanner) Tokenfolge Ableitungsbaum Syntaktische Analyse (Parser) Programmierkurs Java UE 3 Zielprogramm Semantische Analyse/ Codegenerierung Syntaxdiagramme Dietrich Boles Seite 3
Compiler / Lexikalische Analyse Ø Entfernung von Trennzeichen und Kommentaren Ø Erkennung von Token (Zeichen, die bedeutungsmäßig zusammengehören): Ø Schlüsselwörter Ø Bezeichner Ø Symbole Ø Zeichenketten Ø. . . while (zahl >= 17) { zahl = zahl-1; } while ( zahl >= 17 ) { Java Programmierkurs Java UE 3 Syntaxdiagramme zahl = zahl 1 ; } Dietrich Boles Seite 4
Compiler / Syntaktische Analyse Ø Überführung einer Tokenfolge in Ableitungsbaum Ø Untersuchung auf syntaktische Korrektheit Ø Darstellung: Syntaxdiagramme, BNF Zuweisung Variable zahl = 3 + i Ausdruck = + zahl Programmierkurs Java UE 3 Term Konstante Variable 3 i Syntaxdiagramme Dietrich Boles Seite 5
Syntaxdiagramme Ø Technik zur grafischen Darstellung kontextfr. Grammatiken Ø Elemente: Ø Knoten Ø Ellipsen (Token, Terminale) Ø Rechtecke (Nichtterminale) Ø Kanten Ø knotenverbindende Pfeile Ø eintretender Pfeil (Eingangskante) Ø austretender Pfeil (Ausgangskante) Ø Interpretation: Durchläuft man ein Syntaxdiagramm von der Eingangs- zur Ausgangskante entlang den Pfeilen, dann ist die Folge der Knoteninhalte, die dabei "aufgesammelt" werden, aus dem Syntaxdiagramm ableitbar. Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 6
Syntaxdiagramme / Veranschaulichung Syntaktisch korrekt: • • Schlangen Delphine Schlangen Elephanten Pinguine Affen Delphine Schlangen Elephanten Pinguine Delphine Syntaktisch nicht korrekt: • • Elephanten Delphine Schlangen Pinguine Schlangen Elephanten Affen Delphine Schlangen Pinguine Schlangen Delphine Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 7
Syntaxdiagramme / Definition: Ø Jedes Syntaxdiagramm (SD) besitzt eine Bezeichnung Ø Elemente eines Syntaxdiagramms sind Knoten (Ellipsen, Rechtecke) und Kanten (Pfeile) Ø Rechtecke enthalten die Bezeichnung eines (anderen) Syntaxdiagramms Ø Ellipsen enthalten Token Ø in jeden Knoten führt genau ein Pfeil hinein Ø aus jedem Knoten führt genau ein Pfeil hinaus Ø Pfeile dürfen sich aufspalten bzw. zusammengezogen werden Ø jedes SD besitzt genau eine eintretende Kante (kein Ausgangsknoten) Ø jedes SD besitzt genau eine austretende Kante (kein Eingangsknoten) Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 8
Syntaxdiagramme / Beispiel 1 S a D b D c Syntaktisch korrekt oder nicht ? • • abababcccabab aba ccccccc Programmierkurs Java • • UE 3 ab. Dc bababac ababcdcd ABABABc Syntaxdiagramme Dietrich Boles Seite 9
Syntaxdiagramme / Beispiel 2 S S a b Syntaktisch korrekt oder nicht ? • • • L (S) = ? a. Sb aaabbbbbbb aaabbbaaa Programmierkurs Java = { anbn|n N, n>0 } UE 3 Syntaxdiagramme Dietrich Boles Seite 10
Syntaxdiagramme / Beispiel 3 L = {a (b 2 c)n di } | n ist natürliche Zahl oder Null; i ist natürliche Zahl} L a b Programmierkurs Java b UE 3 c Syntaxdiagramme d Dietrich Boles Seite 11
BNF und EBNF Backus-Naur-Form (BNF): Ø Ø Ø Ø Technik zur textuellen Darstellung kontextfreier Grammatiken Verwendung von Ersetzungsregeln (Produktionen) besitzen linke und rechte Seite linke Seite: Nichtterminalsymbol: durch < > gekennzeichnet Alternativen: durch | gekennzeichnet (Epsilon): leere Alternative EBNF: Ø Erweiterung der BNF (Abkürzungsmöglichkeiten) Ø [. . . ] bedeutet: Symbole in Klammern können auch wegfallen Ø {. . . } bedeutet: Symbole in Klammern können beliebig oft (auch Null mal) wiederholt werden Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 12
BNF / Beispiel BNF: <Zoo> : : = "Schlangen" <Säugetiere-und-mehr> : : = <Säugetiere> "Pinguine" <Säugetiere-und-mehr> | <Säugetiere> "Delphine" <Säugetiere> : : = "Elephanten" | "Affen" | Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 13
EBNF / Beispiel EBNF: <Zoo> : : = "Schlangen" <Säugetiere> {"Pinguine" <Säugetiere>} "Delphine" <Säugetiere> : : = "Elephanten" | "Affen" | Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 14
Zusammenfassung Ø Compiler: überprüft unter anderem, ob ein Programm bezogen auf eine bestimmte Programmiersprache syntaktisch korrekt ist Ø Syntaxdiagramme: graphische Notation zur Definition der Syntax einer Programmiersprache Ø BNF/EBNF: textuelle Notation zur Definition der Syntax einer Programmiersprache Programmierkurs Java UE 3 Syntaxdiagramme Dietrich Boles Seite 15
- Slidetodoc.com
- Java programmierkurs
- Programmierkurs java
- Teil 1 teil 2
- Syntaxdiagramm beispiel
- Wie plane ich eine unterrichtseinheit
- Paraverbale kommunikation
- Gui programmierung java
- Java swing libraries
- Gui programmierung java
- Awteventlistener
- Strukturierte programmierung beispiel
- Peter klingebiel
- Funktionale programmierung tu dortmund
- Grundidee objektorientierte programmierung
- Funktionale programmierung tum