Turtle grafik interpreter
This presentation is the property of its rightful owner.
Sponsored Links
1 / 26

Turtle – Grafik – Interpreter PowerPoint PPT Presentation


  • 159 Views
  • Uploaded on
  • Presentation posted in: General

Turtle – Grafik – Interpreter. Programmiersprache für eine Turtle Ingo Höpping. Beispiel. Ergebnis des GK 2009. Quellen / Ideen. Kapitel 6.3 - Eine Anwendung: ein Turtlegrafik-Interpreter. Fahrplan. Was kann die Turtle? Was soll die Programmiersprache können?

Download Presentation

Turtle – Grafik – Interpreter

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Turtle grafik interpreter

Turtle – Grafik – Interpreter

Programmiersprache für eine Turtle

Ingo Höpping

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel

Beispiel

Ergebnis des

GK 2009

Informatik: Theoretische Informatik; Weilburg XII/11


Quellen ideen

Quellen / Ideen

Kapitel 6.3

- Eine Anwendung:

ein Turtlegrafik-Interpreter

Informatik: Theoretische Informatik; Weilburg XII/11


Fahrplan

Fahrplan

  • Was kann die Turtle?

  • Was soll die Programmiersprache können?

  • Beschreibung der Sprache (Syntaxdiagramme)

  • Scanner – Parser – Interpreter / Compiler

  • Rahmenprogramm (GUI)

  • Hilfe / Dokumentation / Auswertung

Informatik: Theoretische Informatik; Weilburg XII/11


Was kann die turtle

Was kann die Turtle?

Delphi-Turtle

eigene Turtle aus Halbjahr OOM

(analoger Befehlsumfang)

Java-Turtle

  • draw / drawTo

  • move / moveTo

  • turn / turnTo

  • clear

  • setBackground

  • setForeground

Informatik: Theoretische Informatik; Weilburg XII/11


Was soll die programmiersprache k nnen

Was soll die Programmiersprache können?

  • Konzeption / Wünsche der Schüler

    • SST / HA / GA / LSG / …

    • Befehlsumfang, Syntaxvereinbarungen, Ideen zur Umsetzung, …

  • Diskussion und Beratung (Einschränkung)

  • alles ist möglich  …

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel i gk 2009

Beispiel I (GK 2009)

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel ii gk 2011

Beispiel II (GK 2011)

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel ii gk 2011 vereinbarungen w nsche umsetzbar

Beispiel II (GK 2011 – Vereinbarungen / Wünsche umsetzbar?)

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel ii gk 2011 vereinbarungen w nsche umsetzbar1

Beispiel II (GK 2011 – Vereinbarungen / Wünsche umsetzbar?)

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel ii gk 2011 vereinbarungen w nsche umsetzbar2

Beispiel II (GK 2011 – Vereinbarungen / Wünsche umsetzbar?)

Informatik: Theoretische Informatik; Weilburg XII/11


Vom quelltext zur zeichnung

Vom Quelltext zur Zeichnung

Abbruch

Quelltext

false

  • SCANNER

  • lexikal. Analyse

  • entfernt über-flüssige Zeichen

  • setzt Tokens

  • erzeugt redText

  • Transduktor

  • PARSER

  • syntaktische und semantische Analyse

  • Akzeptor

redText

true

  • INTERPRETER / COMPILER

  • interpretiert redText

  • führt Programm aus

redText

Informatik: Theoretische Informatik; Weilburg XII/11


Beschreibung der syntax sprache

Beschreibung der Syntax / Sprache?

Informatik: Theoretische Informatik; Weilburg XII/11


Was leistet der scanner

Was leistet der Scanner?

  • Lexikalische Analyse

  • Entfernen überflüssiger Zeichen

  • Setzen von Tokens

  • (evtl. Setzen eines Fehlercodes #)

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel i gk 2009 entwurf tokens f r scanner

Beispiel I (GK 2009 – Entwurf Tokens für Scanner)

Informatik: Theoretische Informatik; Weilburg XII/11


Beispiel i gk 2009 beispiel f r scannerergebniss

Beispiel I (GK 2009 – Beispiel für Scannerergebniss)

Quelltext

redText

{

loop(36) {

loop(4) {

move(100);

turn(90);

}

turn(10);

}

}

{l36{l4{m100;t90;}t10;}}

{

loob(4)

{

move100);

turn(90);

}

}

{#4{#00;t90;}}

Informatik: Theoretische Informatik; Weilburg XII/11


Umsetzung delphi

Umsetzung - Delphi

  • Scanner  ScannerUnit.pas

  • Parser  ParserUnit.pas

  • Interpreter  InterpreterUnit.pas

  • Aufruf aus MainUnit.pas

Informatik: Theoretische Informatik; Weilburg XII/11


Umsetzung java

Umsetzung - Java

  • Scanner  Scanner.java

  • Parser  Parser.java

  • Interpreter  Interpreter.java

  • Aufruf aus TurtleGUI.java

  • Beispielvorlagen (case, array, liste)

Informatik: Theoretische Informatik; Weilburg XII/11


M gliche erweiterungen

Mögliche Erweiterungen

  • Laden / Speichern von Programmen

  • Hilfe im Programm

  • Dokumentation der Programmiersprache

  • syntax highlighting

  • Angabe der Fehlerstelle

  • Variable? Zuweisungen?

  • Codegeneratoren

Informatik: Theoretische Informatik; Weilburg XII/11


Wie kompliziert m ssen scanner und parser sein

Wie kompliziert müssen Scanner und Parser sein?

  • Für die Turtle: einfache DEA (Transduktor, Akzeptor)

  • Komplexere Sprachen

    • Top-Down-Parser: LL(k)-, LF(k)-Parser

    • Bottom-Up-Parser: LR(k)- LALR-Parser

Informatik: Theoretische Informatik; Weilburg XII/11


Java hat doch gar keinen scanner parser

Java hat doch gar keinen Scanner / Parser!?

  • Java-Quellcode wird vom Java-Compiler (javac.exe) übersetzt

  • Compiler enthält Scanner und Parser (besser: Aufgaben des Scanners und Parsers werden vom Compiler mit ausgeführt)

Informatik: Theoretische Informatik; Weilburg XII/11


Compiler

Compiler

  • Compiler führt lexikalische Analyse des Quelltextes durch

  • Erzeugt Symboltabelle und Syntaxbaum

  • Syntaxbaum wird in Programm in Maschinensprache übersetzt

  • Ausführbare Datei

Quelle: Klett; Informatik 5

Informatik: Theoretische Informatik; Weilburg XII/11


Compiler analysephase

Compiler (Analysephase)

  • Quelltext

quadrat = zahl * zahl

  • Generierte Lexeme

  • <Token, Position in Symboltabelle>

<token,1><=><token,2><*><token,2>

<=>

  • Berechnungsbaum

<token,1>

<*>

<token,2> <token,2>

  • Symboltabelle

  • semantische Analyse

  • Typüberprüfung

Informatik: Theoretische Informatik; Weilburg XII/11


Compiler bersetzungsphase

Compiler (Übersetzungsphase)

Informationen der Syntaxbäume / Symboltabelle werden in Maschinencode übersetzt:

  • Zwischencode wird generiert

    • prozessorunabhängig; für abstrakte Rechenmaschine geeignet

    • meist in Drei-Adress-Form

      • wert1 = token2 * token2

      • token1 = wert1

  • maschinenunabhängige Optimierung

    • Strukturierung des Codes in der höheren Programmiersprache (z. B. durch Kopieren von Funktionen an die entsprechenden Stellen innerhalb des Programms oder Weglassen nicht relevanten Codes)

  • maschinenabhängige Optimierung

    • Anpassen an innere Strukturen und Eigenschaften des Prozessors

      • Nutzung des Cache

      • Berücksichtigung der Arbeitsweise innerhalb des Caches: Bsp. Fakultät

      • Berücksichtigung spezieller Befehlssätze

  • Übersetzen der einzelnen Befehle in passenden Maschinencode

Informatik: Theoretische Informatik; Weilburg XII/11


Codegeneratoren

Codegeneratoren

  • CUP und JFlex

    • JFlex erstellt (aus einer Input-Datei *.jflex) einen lexikalischen Scanner (in Form einer Java-Klasse)

    • CUP erstellt (aus einer Input-Datei *.cup) einen Parser (in Form einer Java-Klasse)

Hilfsprogramme zum Erstellen von Scannern und Parsern:

  • AtoCC

    • „… mit Hilfe von AtoCC kann leicht ein LALR(1)-Parser/Interpreter entwickelt werden.“

Informatik: Theoretische Informatik; Weilburg XII/11


Genug geschw tzt

… genug geschwätzt!!!

Informatik: Theoretische Informatik; Weilburg XII/11


  • Login