turtle grafik interpreter n.
Download
Skip this Video
Download Presentation
Turtle – Grafik – Interpreter

Loading in 2 Seconds...

play fullscreen
1 / 26

Turtle – Grafik – Interpreter - PowerPoint PPT Presentation


  • 211 Views
  • Uploaded on

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?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Turtle – Grafik – Interpreter' - odysseus-carr


Download Now 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