Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des...

52
Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht, Michael Hielsche Cottbus, am 22.01.08

Transcript of Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des...

Page 1: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Sprachen und AutomatenEinsatz der Software AtoCC

(Kurs: 07C404101)

Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus

Christian Wagenknecht, Michael Hielscher Cottbus, am 22.01.08

Page 2: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Das Wichtigste zuerst!

Vielen Dank an

Herrn Thomas Lösler.

2

Page 3: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

3

Veranstaltungsort: Oberstufenzentrum I, 03044 Cottbus, Sielower Str. 10

Page 4: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

TI-Inhalte in der Schulinformatik:Probleme und Chancen

Blick in die Lehrpläne verschiedener Bundesländer

4

Page 5: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Lehrplan Ziele und Inhalte

5

Nr.  Bundesland   Lehrplaninhalt (Lernbereich) Pflichtbestandteil

1 Baden-Württemberg Bereich der theoretischen Informatik (Automaten, Berechenbarkeit)

nein

2 Bayern  3. Formale Sprachen (noch Entwurf)  3 Berlin  4.4 Sprachen und Automaten ja (auch GK)4 Brandenburg 4.4 Sprachen und Automaten Ja (auch GK)

5 Bremen Grundlagen der Theoretischen Informatik (Automaten, formale Sprachen)

nein

6 Hamburg Formale Sprachen, endliche Automaten, Keller-automaten, Scanner, Parser, Ableitungsbaum

nein 

7 Hessen Formale Sprachen und Grammatiken Automaten, Fakultativ: Übersetzerbau

ja (auch GK)

8 Mecklenburg-Vorpommern 4.4 Sprachen und Automaten ja (auch GK) 

9 Niedersachsen Eigenschaften endlicher AutomatenAspekte formaler Sprachen

nein 

10 Nordrhein-Westfalen Endliche Automaten und formale Sprachen nein

11 Rheinland-Pfalz Formale Sprachen und Automaten zur Sprachbeschreibung und Spracherkennung  

ja (nur LK)

12 Saarland Automaten und formale Sprachen Fakultativ: Übersetzerbau

ja (auch GK)

13 Sachsen  8 A: Formale Sprachen, Kellerautomat, Akzeptor nein 14 Sachsen-Anhalt Endliche Automaten und formale Sprachen nein 15 Schleswig-Holstein Automaten als mögliches Themengebiet nein16 Thüringen Themenbereich 7.3: Einblick in formale Sprachen nein 

In den meisten Bundesländern sind ausgewählte Inhalte der TI Lehrplaninhalt der Sek. II:

Page 6: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

TI-Inhalte in der Schulinformatik:Probleme und Chancen

Blick in die Lehrpläne verschiedener Bundesländer Konkrete Inhalte

6

Page 7: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Lehrplanauszug Hessen

Verbindliche Unterrichtsinhalte/Aufgaben:

Formale Sprachen und Grammatiken

reguläre und kontextfreie Grammatiken und Sprachen

Anwendung mit Syntaxdiagrammen

Chomsky-Hierarchie (LK)

kontextsensitive Sprachen (LK)

Endliche Automaten Zustand, Zustandsübergang, Zustandsdiagramm Zeichen, Akzeptor

Simulation realer Automaten (z. B. Getränkeautomat)

Anwendung endlicher Automaten (z. B. Scanner)

deterministische und nicht-deterministische Automaten (LK)

reguläre Ausdrücke (LK)

Mensch-Maschine-Kommunikation (LK)

Kellerautomaten

(LK, GK fakultativ)

Automat mit Kellerspeicher

kontextfreie Grammatiken

Klammerausdrücke, Rekursion Turing- oder Registermaschine

(LK, GK fakultativ)

Turing- oder registerberechenbar

Churchsche These

Computer als universelle symbolverarbeitende Maschine

Verhältnis Mensch-Maschine

Fakultative Unterrichtsinhalte/Aufgaben:

Übersetzerbau Scanner, Parser, Interpreter und Compiler

z. B. Steuersprache für Roboter, LOGO, Plotter oder miniPASCAL

7

Page 8: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

TI an Hochschulen – NICHTS für Schulen8

Typischerweise: Begrifflich orientiert, deduktiv

• Zeichen, Alphabet, Wort, Verkettung, Wortmenge• Sprache, formale Grammatik, Ableitung• reguläre Sprachen: Chomsky-Typ-3-Grammatik, reguläre Ausdrücke, DEA, NEA, L(DEA)=L(NEA), Minimalautomat, diverse Sätze (Nerode/Myhill, Pumping Lemma, ...), ...• kontextfreie Sprachen: Typ-2-Gr., DKA, NKA, L(DKA)<L(NKA), Transformation G >>> NKA (1 Zustand), diverse Sätze, ...• ksS / unbeschr. Sprachen: Typ-1- und Typ-0-Grammatiken, Turing-Maschine (beschränkt/unbeschränkt)

* Theorie der formalen Sprachen* Automatentheorie* Berechenbarkeitstheorie* Komplexitätstheorie

Page 9: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Lernbereich 8 A (Sächs. Lehrplan)9

GK Informatik f. Jahrgangsstufen 11 und 12, wird ab Schuljahr 2008/09 wirksam

endlicher Automat

Page 10: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Informatik-Lehrplan: S II, Brandenburg

10

1. Auflage: 2006, gültig für Qualifizierungsphase ab Schuljahr 2008/9

gemeinsames Kerncurriculum mit Berlin und MeckPomm= Basis für schulinterne Lehrpläne

Page 11: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Kompetenzerwerb im Themenfeld (Auszug)

Die Schülerinnen und Schüler verstehen die zur Problemlösung eingesetzten Programmiersprachen als spezielle formale Sprachen, die es ihnen erlauben, Probleme mit den Methoden der Informatik zu lösen.

Hoffentlich nicht!!!

Durch die Einführung des Automatenmodells vertiefen sie ihr Verständnis von Informatiksystemen.

Naja, die LehrerInnen werden's schon machen!

11

Page 12: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Abbildung der Kompetenzbereiche auf Kurshalbjahre

12

Klassen 11 und 12 (Qualifikationsphase): 4 Kurshalbjahre3-5 Stunden pro Kurshalbjahr

Page 13: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

TI-Inhalte in der Schulinformatik:Probleme und Chancen

Blick in die Lehrpläne verschiedener Bundesländer Konkrete Inhalte:

totale Überfrachtung mit Fachinhalten TI-Kompetenz der LP-Autoren? (Fachsystematik,

Formulierung von Wunschvorstellungen, ...)

13

Page 14: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Gefühlssituation der Lehrenden

"TI wollte ich nie machen." "TI hat mich nie richtig interessiert." "TI war mir immer zu theoretisch und abstrakt." "Die TI-Dozenten waren suspekt – TI im

postgradualen Studium erinnere ich mit Grausen."

"Die TI-Inhalten helfen mir nicht, wenn das Schulnetzwerk mal wieder zusammenbricht."

...

14

Page 15: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

TI-Inhalte in der Schulinformatik:Probleme und Chancen

Zeit-Problem, Inhalte-Problem (Zusammenfassung von oben)

Manche Lehrende mögen es nicht. – Motivationsproblem

Manche Lehrende können es nicht richtig. - Qualifikationsproblem

SchülerInnen/Studierende fragen gelegentlich: "Wann geht es denn nun endlich richtig los mit der Informatik? Ach so, das ist es schon." - Vermittlungsproblem

"Ergebnis": Wenn möglich, TI weglassen. FALSCH!!!

Chance: Informatik als Wissenschaft repräsentieren!

(wie Mathematik und Naturwissenschaften)

Sonst: Studienabbrecher als konkrete Folge!!!

15

Page 16: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Didaktische Software für TI

in Schulen: diverse Simulationstools oder Lernumgebungen, wie Kara; meist von enthusiastischen LehrerInnen entwickelt

in Hochschulen: Systeme für die Lehre, wie JFLAP

LEX und YACC für die Hand des Ingenieurs

16

Simulationstool – Bildungsserver HessenSimulationstool – Bildungsserver Hessen

Page 17: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Defizite existierender Systeme

Systeme bzw. separate Module thematisieren Einzelaspekte

nicht definitionskonform und/oder nicht an Lernprozessen orientiert, sondern die Prozess-Simulation dominiert

Suggerieren abstrakten Automat als physikalisches Objekt

Systeme können nur simple Beispiele bearbeiten – zu große Distanz zur Praxis

17

Page 18: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Lernumgebungen (Quelle: LP Brandenburg)

"Lernumgebungen werden so gestaltet, dass sie das selbst gesteuerte

Lernen von Schülerinnen und Schülern fördern. Sie unterstützen durch

den Einsatz von Medien sowie zeitgemäßer Kommunikations- und

Informationstechnik sowohl die Differenzierung individueller

Lernprozesse als auch das kooperative Lernen. Dies trifft sowohl auf

die Nutzung von multimedialen und netzbasierten Lernarrangements

als auch auf den produktiven Umgang mit Medien zu.

Moderne Lernumgebungen ermöglichen es den Lernenden, eigene

Lern- und Arbeitsziele zu formulieren und zu verwirklichen sowie

eigene Arbeitsergebnisse auszuwerten und zu nutzen."

18

Page 19: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Lern- und Arbeitsumgebung für TI: Anforderungen (1/2)

ganzheitlicher Ansatz: Praxis Theorie Praxis, s. Lehrplanforderung

einheitliche Bedienung der Module (für Automatentheorie und Sprachübersetzer)

Handlungsorientierung auf hohen Abstraktionsniveaus (wenig technischer Ballast auch für anspruchsvolle Aufgabenstellungen)

19

Page 20: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

AtoCC - Vom abstrakten Automaten zur automatisierten Entwicklung von Sprachübersetzern

Typische Kopplung von Automatentheorie mit Aspekten des Compilerbaus (s. Lehrpläne)

Wichtige didaktische Entscheidung: Zielsprache sollte nicht Maschinencode sein!!

ein enger Bezug der Herstellung eines Sprachübersetzers zu den theoretischen Grundlagen erfordert hohe Abstraktion

Modellierung des Übersetzungsprozesses mit "ausführbaren" T-Diagrammen

21

Page 21: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Unsere Ziele22

1. Belastbare Motivation für TI-Inhalte durch herausfordernde

Start-Fragestellung mit Praxisrelevanz und Modellierung

eines Zielsystems (Sprachübersetzer) am Anfang

2. Vermittlungs-/Anwendungszyklen für TI-Wissen mit Projekt-

bezug (Praxis nicht als "Anhängsel" zur Theorie)

3. Komplexe Anwendung von TI-Inhalten auf sehr hohem

Abstraktionsniveau (automatisierte Compiler-Generierung),

Rückkehr zur und Konkretisierung der Modellierungsebene

Behauptung: Dabei ist AtoCC ein unverzichtbares Hilfsmittel.

Page 22: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Installationshinweise: Installieren Sie .NET Framework 2.0 oder höher

(unter www.atocc.de Fortbildung Software) Installieren Sie GhostScript 8.60 Installieren Sie „AtoCC Setup.exe“ Wenn nicht vorhanden einen PDF Reader (Adobe

Reader oder Foxit Reader) installieren. (Wenn noch nicht vorhanden MSXML 4 oder 6

installieren. Downloadseite wird von AutoEdit automatisch beim ersten Start geöffnet, wenn dies fehlen sollte.)

23

Page 23: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

24

Praxisnahe (echte!) Aufgabe mit grafischer Ausgabe:Entwickeln Sie einen Compiler, der die Sprache ZR (ZeichenRoboter) in PDF übersetzt. (Schülergerecht formulieren!)

Eingabewort (in ZR): WH 36 [WH 4 [VW 100 RE 90] RE 10]

Ausgabewort (in PS):%!PS-Adobe-2.0/orient 0 def /xpos 0 def /ypos 0 def 0 0 0 setrgbcolor/goto { /ypos exch def /xpos exch def xpos ypos moveto} def/turn { /orient exch orient add def} def /draw { /len exch def newpath xpos ypos moveto /xpos xpos orient sin len mul add def /ypos ypos orient cos len mul add def xpos ypos lineto stroke } def 300 400 goto100 draw 90 turn 100 … turn 10 turn

Page 24: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

25

Weiterer Ablauf:

1.Modellierung der Problemlösung mit TDiag

2.Syntax-Definition von ZR: formale Grammatik, Ableitungsbaum mit kfGEdit

3.Parser Akzeptoren Automatenmodelle (EA, KA) mit AutoEdit

4.Arbeitsteilung: Scanner, Parser

5.Zielsprachenbezug automatisierte Compiler-Entwicklung mit VCC

6.Teilsysteme werden in Modellierung eingebracht (TDiag)

7.Ergebnis: lauffähiger (nichttrivialer) Übersetzer, den man benutzen kann!

TDiag, kfGEdit, AutoEdit, und VCC sind Bestandteile von AtoCC.

Page 25: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Wir wollen zunächst den Compilerprozess entwerfen. (Modellierung)

Verwendung von T-Diagrammen: T-Diagramme bestehen aus 4 Bausteintypen. Compilerbaustein, Programmbaustein,

Interpreterbaustein und Ein/Ausgabe-Baustein

26

Compiler Programm Interpreter Ein/Ausgabe an Programmbaustein

Page 26: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Entwerfen eines T-Diagramms für Zeichenroboter Compiler:

ZR2PS werden wir entwickeln, PS2PDF und Acrobat Reader wird vom System bereitgestellt.

27

Page 27: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Nachdem wir nun wissen, wie unser Compiler später eingesetzt werden soll, wenden wir uns der Entwicklung des Compilers zu.

Sprache näher betrachten Terminale und Nichterminale festlegen formale Grammatik definieren Ableitungsbäume erzeugen

28

Page 28: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Betrachten wir die Sprache ZR und versuchen wir ihren Aufbau zu beschreiben: VW 50 RE 270 WH 2 [VW 100] WH 4 [VW 100 RE 100] WH 36 [WH 4 [VW 100 RE 90] RE 10]

Magnetkarten an der Tafel

29

Page 29: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Beschreiben wir den Baustein Zahl genauer: 0 soll keine Zahl in ZR sein, da VW 0 oder RE 0

keine Veränderung herbeiführen. Vorangestellte Nullen wie 0815 wollen wir auch

nicht erlauben. Ergänzen wir unsere Grammatik um:

Zahl ErsteZiffer Ziffern

Ziffern Ziffer Ziffern | Ziffer 0 | 1 | ... | 9

ErsteZiffer 1 | 2 | ... | 9

30

Page 30: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

31

Page 31: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

32

Page 32: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

33

Page 33: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Programm Anweisungen

Anweisungen Anweisung Anweisungen | EPSILON

Anweisung VW Zahl

| RE Zahl

| WH Zahl [ Anweisungen ]

| FARBE Farbwert

| STIFT Zahl

Farbwert rot | blau | gruen | gelb | schwarz

Zahl ErsteZiffer Ziffern

Ziffern Ziffer Ziffern | EPSILON

Ziffer 0 | 1 | ... | 9

ErsteZiffer 1 | 2 | ... | 9

34

Page 34: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Automaten als Akzeptoren für Sprachen Akzeptor prüft, ob ein Wort zur Sprache gehört oder

nicht. (Keine Ausgabe Wort akzeptiert) (Thema: Programmiersprachen und Syntaxfehler)

Wir nehmen zwei Ausschnitte aus den Produktionen:Zahl ErsteZiffer Ziffern

Ziffern Ziffer Ziffern | EPSILON

Ziffer 0 | 1 | ... | 9

ErsteZiffer 1 | 2 | ... | 9

Anweisungen Anweisung Anweisungen | EPSILON

Anweisung VW Zahl | WH Zahl [ Anweisungen ]

35

Page 35: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Kleiner Sprachausschnitt:Zahl ErsteZiffer Ziffern

Ziffern Ziffer Ziffern | EPSILON

Ziffer 0 | 1 | ... | 9

ErsteZiffer 1 | 2 | ... | 9

36

Page 36: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

37

Page 37: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Anweisungen Anweisung Anweisungen | EPSILON

Anweisung VW n

| WH n [ Anweisungen ]

38

Page 38: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

39

Page 39: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Aus der Kombination von kleinen endlichen Automaten und einem Kellerautomat wird später unser Compiler bestehen.

Für DEA-Sprachen können auch reguläre Ausdrücke verwendet werden: Beispiel Zahl: [1-9][0-9]*

40

Page 40: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Arbeitsweise des Compilers

41

Page 41: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Arbeitsweise eines Scanners

42

Ein- und Ausgabe des Scanners:

Viele kleine endliche Automaten entscheiden welche Schlüsselworte im Quelltext stehen.

Quelltext besteht aus Zeichen und der Rechner weiß noch nicht wie diese zusammengehören.

Token als Paare[Tokenname, Lexem] z.B.: [Wiederhole, "WH"][Zahl, "12"][KlammerAuf, "["]

Page 42: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Programm Anweisungen

Anweisungen Anweisung Anweisungen | EPSILON

Anweisung VW Zahl

| RE Zahl

| WH Zahl [ Anweisungen ]

| FARBE Farbwert

| STIFT Zahl

Farbwert : rot|blau|gruen|gelb|schwarz

Zahl : [1-9][0-9]*

43

Page 43: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Endliche Automaten (RegExp) für alle unsere Terminale:

KlammerAuf : \[

KlammerZu : \]

Wiederhole : WH

Rechts : RE

Vor : VW

Stift : STIFT

Farbe : FARBE

Farbwert : rot|blau|gruen|gelb|schwarz

Zahl : [1-9][0-9]*

44

Page 44: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

45

Page 45: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

46

per Hand ergänzen

Page 46: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Arbeitsweise des Parsers

47

Ein- und Ausgabe des Parsers:

#false erfolgt meinst durch Ausgabe von „Syntax Error“

Grammatik von ZR in Form eines Kellerautomaten Prüft ob Wort zur Sprache gehört

Beinhaltet die aufgetretenen Terminale der Grammatik des Parsers

Page 47: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Entwicklung des ZR2PS Compilers in VCC Übertragen der EA in die Scannerdefinition Übertragen der vereinfachten Grammatik in die

Parserdefinition Entwickeln sogenannter S-Attribute für die

Zielcodegenerierung

48

Page 48: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Zielcodegenerierung: Der Compiler soll PostScript erstellen nicht nur

#true und #false ausgeben. Entwicklung von S-Attributen S-Attribute sind kleine Quelltextfragmente die für

jede rechte Regelseite definiert werden können. Wird eine Regel angewendet wird auch das

entsprechende Quellcodefragment ausgeführt.

49

Page 49: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Die Platzhalter $1 bis $n: In S-Attributen verwenden wir Platzhalter für die

Ergebnisse der einzelnen Regelbausteine.

50

$1$1 $2$2

VWVW 2020

Eingabewort sei: VW 20 RE 10Eingabewort sei: VW 20 RE 10Eingabewort sei: VW 20 RE 10Eingabewort sei: VW 20 RE 10

Von einem Token ist $n immer des Lexem des Tokens !

Von einem Nichtterminal ist $n immer das Ergebnis $$ des Nichtterminals !

Von einem Token ist $n immer des Lexem des Tokens !

Von einem Nichtterminal ist $n immer das Ergebnis $$ des Nichtterminals !

$$ = "20 draw "$$ = "20 draw "

Page 50: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Von einem Token ist $n immer des Lexem des Tokens !

Von einem Nichtterminal ist $n immer das Ergebnis $$ des Nichtterminals !

Von einem Token ist $n immer des Lexem des Tokens !

Von einem Nichtterminal ist $n immer das Ergebnis $$ des Nichtterminals !

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Die Platzhalter $1 bis $n: In S-Attributen verwenden wir Platzhalter für die

Ergebnisse der einzelnen Regelbausteine.

51

$1$1 $2$2

WHWH 44

Eingabewort sei: WH 4 [ VW 20 ]Eingabewort sei: WH 4 [ VW 20 ]

$3$3

[[

$5$5

]]

$4$4

20 draw20 draw

$$ = "20 draw 20 draw 20 draw 20 draw "$$ = "20 draw 20 draw 20 draw 20 draw " Alle $n und $$ sind vom Datentyp String !!!

Alle $n und $$ sind vom Datentyp String !!!

Page 51: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Arbeitsweise des Compilers

52

Programm Anweisungen Anweisungen Anweisung Anweisungen | Anweisung VW Zahl | RE Zahl | WH Zahl [ Anweisungen ] | FARBE Farbwert | STIFT Zahl

Programm Anweisungen Anweisungen Anweisung Anweisungen | Anweisung VW Zahl | RE Zahl | WH Zahl [ Anweisungen ] | FARBE Farbwert | STIFT Zahl

WH 36 [WH 4 [VW 100 RE 90] RE 10]WH 36 [WH 4 [VW 100 RE 90] RE 10]

[Wiederhole, "WH"][Zahl, "12"][KlammerAuf" "["]…

[Wiederhole, "WH"][Zahl, "12"][KlammerAuf" "["]…

%!PS-Adobe-2.0/orient 0 def /xpos 0 def /ypos 0 def 0 0 0 setrgbcolor/goto { /ypos exch def /xpos exch

def xpos ypos moveto} def…

%!PS-Adobe-2.0/orient 0 def /xpos 0 def /ypos 0 def 0 0 0 setrgbcolor/goto { /ypos exch def /xpos exch

def xpos ypos moveto} def…

Page 52: Sprachen und Automaten Einsatz der Software AtoCC (Kurs: 07C404101) Fortbildungsveranstaltung des Staatlichen Schulamts Cottbus Christian Wagenknecht,

Beispiel: ZR – eine Sprache für einen Zeichenroboter

Anwenden des Compilers auf der Modellierungsebene der T-Diagramme in TDiag.

53