![Page 1: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/1.jpg)
Theoretische Informatik mit AtoCC:
Formale Sprachen, abstrakte Automaten und Compiler.
Einsatz der Software AtoCC
(Kurs: 07F305201)
Fortbildungsveranstaltung des Staatlichen Schulamts Frankfurt
Christian Wagenknecht, Michael Hielscher Frankfurt, am 10.06.08
![Page 2: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/2.jpg)
Das Wichtigste zuerst!
Vielen Dank an
Herrn Thomas Lösler.
Frau Nagel und Frau Rückert
2
![Page 3: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/3.jpg)
3
Veranstaltungsort: Gymnasium I, Frankfurt/Oder, Wieckestr. 1b
![Page 4: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/4.jpg)
TI-Inhalte in der Schulinformatik:Probleme und Chancen
Blick in die Lehrpläne verschiedener Bundesländer
4
![Page 5: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/5.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/6.jpg)
TI-Inhalte in der Schulinformatik:Probleme und Chancen
Blick in die Lehrpläne verschiedener Bundesländer Konkrete Inhalte
6
![Page 7: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/7.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/8.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/9.jpg)
Lernbereich 8 A (Sächs. Lehrplan)9
GK Informatik f. Jahrgangsstufen 11 und 12, wird ab Schuljahr 2008/09 wirksam
endlicher Automat
![Page 10: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/10.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/11.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/12.jpg)
Abbildung der Kompetenzbereiche auf Kurshalbjahre
12
Klassen 11 und 12 (Qualifikationsphase): 4 Kurshalbjahre3-5 Stunden pro Kurshalbjahr
![Page 13: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/13.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/14.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/15.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/16.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/17.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/18.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/19.jpg)
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/20.jpg)
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 des Compilers sollte nicht Maschinencode sein!!
Herstellung eines lauffähigen(!) Sprachüberset-zers durch Anwendung der Kenntnisse aus der TI erfordert hohe Abstraktion (CC mit VCC)
Modellierung des Übersetzungsprozesses mit "ausführbaren" T-Diagrammen
21
![Page 21: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/21.jpg)
Didaktische Gestaltung der Lerneinheit22
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: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/22.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Installationshinweise: Bitte Reihenfolge einhalten!Software unter:
www.atocc.de Fortbildung Software Installieren Sie GhostScript 8.60http://www.michael-hielscher.de/download/gs860w32.exe
Installieren Sie „AtoCC Setup.exe“ http://www.michael-hielscher.de/download/atocc/AtoCC%20Setup.exe
Wenn nicht vorhanden einen PDF Reader (Adobe Reader oder Foxit Reader) installieren.
23
![Page 23: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/23.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
24
Praxisnahe (echte!) Aufgabe mit grafischer (akustischer) 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]
Sprachelemente:VW n VorWärts n SchritteRE n Rechts um n GradWH n [ ... ] WiehderHole n-mal [...]FARBE f StiftFARRBE fSTIFT n Strichstärke n
Aufgabe: Verwenden Sie den fertigen Compiler zr2pdf blume.zr (konsole.bat aufrufen, blume.zr ansehen)
![Page 24: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/24.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
25
Der Zeichenroboter kann auch mehr: BunteBlume.zr
![Page 25: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/25.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
26
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 26: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/26.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Wir wollen zunächst den Übersetzungsprozess entwerfen modellieren
Verwendung von T-Diagrammen: T-Diagramme bestehen aus 4 Bausteintypen. Compilerbaustein, Programmbaustein,
Interpreterbaustein und Ein/Ausgabe-Baustein
27
Compiler Programm Interpreter Ein/Ausgabe an Programmbaustein
![Page 27: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/27.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
T-Diagramm: 1. Entwurf
28
ZR2PDF möchte niemand schreiben!!!ZR2PDF möchte niemand schreiben!!!
![Page 28: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/28.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
T-Diagramm: 2. Entwurf
29
ZR2PS werden wir entwickeln, PS2PDF und Acrobat Reader wird vom System bereitgestellt.
ZR2PS werden wir entwickeln, PS2PDF und Acrobat Reader wird vom System bereitgestellt.
![Page 29: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/29.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Nachdem wir nun wissen, wie unser Compiler später zur Übersetzung eingesetzt werden soll, wenden wir uns der Entwicklung des Compilers zu.
Zunächst für die Quellsprache: Mit Sprache auseinandersetzen: Beispielwörter
bilden; Grammatik definieren, d.h. Terminale bestimmten, Produktionsregeln angeben und dabei Nichtterminale festlegen = induktives Vorgehen
Ableitungsbäume erzeugen
30
![Page 30: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/30.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Wir betrachten die Sprache ZR und versuchen ihren Aufbau zu beschreiben: VW 50 RE 270 RE 45 WH 2 [VW 100] WH 4 [VW 100 RE 100] WH 36 [WH 4 [VW 100 RE 90] RE 10]
Magnetkarten an der Tafel
31
![Page 31: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/31.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Beschreiben wir den Baustein Zahl genauer: 0 soll in ZR keine Zahl sein, da VW 0 oder RE 0
keine Veränderung herbeiführen. Vorangestellte Nullen, wie bei 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
32
![Page 32: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/32.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
33
![Page 33: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/33.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
34
![Page 34: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/34.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
35
![Page 35: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/35.jpg)
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
36
![Page 36: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/36.jpg)
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 ]
37
![Page 37: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/37.jpg)
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
38
![Page 38: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/38.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
39
![Page 39: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/39.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
40
![Page 40: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/40.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Anweisungen Anweisung Anweisungen | EPSILON
Anweisung VW n
| WH n [ Anweisungen ]
41
DKA für obigen Grammatik-Ausschnitt
![Page 41: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/41.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Aus der Kombination von kleinen endlichen Automaten und einem Kellerautomaten wird später unser Compiler bestehen.
Für EA-Sprachen können auch reguläre Ausdrücke verwendet werden: Beispiel Zahl (nicht 0, ohne Vornullen): [1-9][0-9]*
42
![Page 42: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/42.jpg)
Arbeitsweise des Compilers
43
![Page 43: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/43.jpg)
Arbeitsweise eines Scanners
44
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 44: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/44.jpg)
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]*
45
![Page 45: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/45.jpg)
Reguläre Grammatik NEA DEA
46
farbwert.txt
![Page 46: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/46.jpg)
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]*
47
S, T, I, F, T
![Page 47: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/47.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
48
![Page 48: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/48.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
49
per Hand ergänzen
![Page 49: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/49.jpg)
Arbeitsweise des Parsers
50
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 50: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/50.jpg)
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
51
![Page 51: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/51.jpg)
Beispiel: Postscript als Zielsprache des ZR-Compilers
52
ZR PS PDF
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 52: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/52.jpg)
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.
53
![Page 53: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/53.jpg)
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.
54
$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 54: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/54.jpg)
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.
55
$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 55: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/55.jpg)
Arbeitsweise des Compilers
56
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 56: Theoretische Informatik mit AtoCC: Formale Sprachen, abstrakte Automaten und Compiler. Einsatz der Software AtoCC (Kurs: 07F305201) Fortbildungsveranstaltung](https://reader035.vdokument.com/reader035/viewer/2022062417/55204d7249795902118c6264/html5/thumbnails/56.jpg)
Beispiel: ZR – eine Sprache für einen Zeichenroboter
Anwenden des Compilers auf der Modellierungsebene der T-Diagramme in TDiag.
57