Imperative Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Imperative Programmierung
Imperative Programmierung
Vorlesung Compilertechnik Sommersemester 2008
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Technische Universität Dortmund
Zusammenfassung der Vorwoche
7. Natürliche Binärbäume
9. Syntaxdiagramme und Backus-Naur-Form (BNF)
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
8. Formale Sprachen und Grammatiken
10. Grundlagen imperativer Programmiersprachen
Puck eine visuelle Programmiersprache für die Schule
Lösung 7.1 Syntax und Semantik
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
Imperative Programmierung
Objektorientierte Programmierung Definition von Klassen
der Universität Oldenburg
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Parser generieren Yet Another Compiler – Compiler YACC.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
Parser - Verfahren: Rekursiver Abstieg
FH-Hof Alternative Darstellungsformen für Grammatiken Richard Göbel.
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Parsing regulärer Ausdrücke
Imperative Programmierung Funktionen und Parameter
Imperative Programmierung
Beispiele für Ausdrucksalgebren
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Ein Vortrag von Stefan Winter & Marc Ruppert
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Von der Sprache zum Programm
Grundkurs Theoretische Informatik, Folie 7.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 7 Gottfried Vossen Kurt-Ulrich Witt.
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Grundlagen der Programmierung
Einführung in die Programmierung Prof. Dr. Bertrand Meyer
Entwurf und Implementierung eines Scanner-Generatorsystems
Natürliche und künstliche Sprachen
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Städtisches Gymnasium Beverungen Friedel Berlage
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
PHP: Operatoren und Kontrollstrukturen
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Frühjahrs-/Sommersemester 2013
Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen
Agenda Motivation und Einordnung Syntaxgerichtete Übersetzung
Mensch – Maschine - Kommunikation
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Das Java-Hamster-Modell
7. Formale Sprachen und Grammatiken
Semantische Analyse und attributierte Grammatiken
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht vollständig mit Powerpoint für Windows kompatibel.
Sprachen und Programmiersprachen
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Syntaxdiagramme.
 Präsentation transkript:

Imperative Programmierung Programmierkurs Java Teil Imperative Programmierung Unterrichtseinheit 3 Syntaxdiagramme Dr. Dietrich Boles

Gliederung Compiler Syntaxdiagramme BNF und EBNF Zusammenfassung

Lexikalik: gültige Zeichen und Wörter der Sprache 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 Quell- programm Token- folge Ableitungs- baum Ziel- programm Lexikalische Analyse (Scanner) Syntaktische Analyse (Parser) Semantische Analyse/ Codegenerierung

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 = - 1 ; } while (zahl >= 17) { zahl = zahl-1; } Java

Compiler / Syntaktische Analyse Überführung einer Tokenfolge in Ableitungsbaum Untersuchung auf syntaktische Korrektheit Darstellung: Syntaxdiagramme, BNF Zuweisung Variable = Ausdruck zahl = 3 + i zahl Term + Variable i Konstante 3

Technik zur grafischen Darstellung kontextfr. Grammatiken Elemente: 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.

Syntaxdiagramme / Veranschaulichung Syntaktisch korrekt: Schlangen Delphine Schlangen Elephanten Pinguine Delphine Schlangen Elephanten Pinguine Affen Delphine Schlangen Elephanten Pinguine Elephanten Pinguine Delphine Syntaktisch nicht korrekt: Elephanten Delphine Schlangen Pinguine Schlangen Elephanten Affen Delphine Schlangen Pinguine Schlangen Delphine

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)

Syntaxdiagramme / Beispiel 1 c Syntaktisch korrekt oder nicht ? abababccc ababcccabab aba ccccccc abDc bababac ababcdcd ABABABc

Syntaxdiagramme / Beispiel 2 Syntaktisch korrekt oder nicht ? aSb aab aaabbb abbbbbbb aaabbbaaa L (S) = ? = { anbn|nN, n>0 }

Syntaxdiagramme / Beispiel 3 L = {a (b2 c)n di } | n ist natürliche Zahl oder Null; i ist natürliche Zahl} L a b b c d

Backus-Naur-Form (BNF): 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 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

BNF / Beispiel BNF: <Zoo> ::= "Schlangen" <Säugetiere-und-mehr> <Säugetiere-und-mehr> ::= <Säugetiere> "Pinguine" | <Säugetiere> "Delphine" <Säugetiere> ::= "Elephanten" | "Affen" | 

EBNF / Beispiel EBNF: <Zoo> ::= "Schlangen" <Säugetiere> {"Pinguine" <Säugetiere>} "Delphine" <Säugetiere> ::= "Elephanten" | "Affen" | 

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