1 / 98

Sächsisches Bildungsinstitut, F+T-Zentrum Meißen

Sächsisches Bildungsinstitut, F+T-Zentrum Meißen. SBI00643 Fachbezogene Fortbildung für Fachberater im Fach Informatik an Gymnasien „Theoretische Informatik (TI) – Theoretische Grundlagen von Programmiersprachen“ mit der Lernumgebung AtoCC. Christian Wagenknecht, Michael Hielscher.

trevet
Télécharger la présentation

Sächsisches Bildungsinstitut, F+T-Zentrum Meißen

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sächsisches Bildungsinstitut, F+T-Zentrum Meißen SBI00643 Fachbezogene Fortbildung für Fachberater im Fach Informatik an Gymnasien „Theoretische Informatik (TI) – Theoretische Grundlagen von Programmiersprachen“ mit der Lernumgebung AtoCC Christian Wagenknecht, Michael Hielscher Meißen, 09.04.-11.04.08

  2. Das Wichtigste zuerst! Vielen Dank an Herrn Wolfgang Rafelt Erster Kontakt: 25.05.07

  3. Zeitplan und Ziele Mittwoch, 09.04.08, 15:00-17:30: Einführung, Installation, ZR-Compiler (TDiag) Donnerstag, 10.04.08, 09:00-10:30: Formale Grammatik für ZR inkl. Grundbegriffe (kfGEdit) 11:00-12:30: DEA für Zahl und Farbwert (AutoEdit), reguläre Ausdrücke 13:30-15:00: DKA für kfS (AutoEdit), Beispiel: WH n [...] 15:15-17:30: Compiler = Analyse + Synthese (VCC) Analyse: Scanner, Parser; Zielsprache: PS; TDiagramm Freitag, 11.04.08, 09:00-10:30: Projekt "Notensprache" – Quellsprache, Zielsprache, Werkzeuge; Übersetzungsmodell, Grammatiken, reduzierte Gramm. 11:00-12:30: DEA, reguläre Ausdrücke, Compiler, TDiag (Projektende) 13:30-14:00: Turingmaschinen, Hinweis auf Automaten mit Ausgabe (Mealy-, Moore-Automaten, nicht LP-Gegenstand) Ende des Kurses

  4. Lehrplan  Ziele und Inhalte In den meisten Bundesländern sind ausgewählte Inhalte der TI Lehrplaninhalt der Sek. II:

  5. Lehrplanauszug Hessen

  6. Lernbereich 8 A (Sächs. Lehrplan) endlicher Automat GK Informatik f. Jahrgangsstufen 11 und 12, wird ab Schuljahr 2008/09 wirksam

  7. TI-Inhalte in der Schulinformatik: Probleme und Chancen • Blick in die Lehrpläne verschiedener Bundesländer • totale Überfrachtung mit Fachinhalten • Formulierung von Wunschvorstellungen (z.B. TI + Compiler) (geringe didaktische Erfahrung) • Besondere Spezifik der TI (mathematische Denktechniken vs. ingenieurwissenschaftlicher Arbeitskontext der SE) wird nicht ausreichend berücksichtigt  Inhalts/Zeit-Relation  Verinnerlichung von Inhalten • Kompetenz und Motivation des Lehrpersonals

  8. 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." • ...

  9. 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!!!

  10. 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 Simulationstool – Bildungsserver Hessen

  11. Unsere Ziele – nicht ohne AtoCC!!! Belastbare Motivation für TI-Inhalte durch herausforderndeStart-Fragestellung mit Praxisrelevanz und Modellierungeines Zielsystems (Sprachübersetzer) am Anfang Vermittlungs-/Anwendungszyklen für TI-Wissen mit Projekt-bezug (Praxis nicht als "Anhängsel" zur Theorie) Komplexe Anwendung von TI-Inhalten auf sehr hohemAbstraktionsniveau (automatisierte Compiler-Generierung),Rückkehr zur und Konkretisierung der Modellierungsebene Behauptung: Dabei ist AtoCC ein unverzichtbares Hilfsmittel.

  12. Beispiel: ZR – eine Sprache für einen Zeichenroboter 12 • 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 nVorWärtsn Schritte • RE n Rechts um n Grad • WH n [ ... ] WiehderHolen-mal [...] • FARBE fStiftFARRBEf • STIFT n Strichstärke n Aufgabe: Verwenden Sie den fertigen Compiler zr2pdf blume.zr (konsole.bat aufrufen, blume.zr ansehen)

  13. Beispiel: ZR – eine Sprache für einen Zeichenroboter 13 Der Zeichenroboter kann auch mehr: BunteBlume.zr

  14. Beispiel: ZR – eine Sprache für einen Zeichenroboter 14 Weiterer Ablauf: Modellierung der Problemlösung mit TDiag Syntax-Definition von ZR: formale Grammatik, Ableitungsbaum mit kfGEdit Parser  Akzeptoren  Automatenmodelle (EA, KA) mit AutoEdit Arbeitsteilung: Scanner, Parser Zielsprachenbezug  automatisierte Compiler-Entwicklung mit VCC Teilsysteme werden in Modellierung eingebracht (TDiag) Ergebnis: lauffähiger (nichttrivialer) Übersetzer, den man benutzen kann! TDiag, kfGEdit, AutoEdit, und VCC sind Bestandteile von AtoCC.

  15. 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 Ein/Ausgabe an Programmbaustein Compiler Programm Interpreter

  16. Beispiel: ZR – eine Sprache für einen Zeichenroboter T-Diagramm: 1. Entwurf ZR2PDF möchte niemand schreiben!!!

  17. Beispiel: ZR – eine Sprache für einen Zeichenroboter T-Diagramm: 2. Entwurf ZR2PS werden wir entwickeln, PS2PDF und Acrobat Reader wird vom System bereitgestellt.

  18. 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. • Sprache näher betrachten • Terminale und Nichtterminale festlegen • formale Grammatik definieren • Ableitungsbäume erzeugen

  19. Beispiel: ZR – eine Sprache für einen Zeichenroboter Betrachten wir die Sprache ZR und versuchen wir 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

  20. 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

  21. Beispiel: ZR – eine Sprache für einen Zeichenroboter

  22. Beispiel: ZR – eine Sprache für einen Zeichenroboter

  23. Beispiel: ZR – eine Sprache für einen Zeichenroboter

  24. Beispiel: ZR – eine Sprache für einen Zeichenroboter ProgrammAnweisungen AnweisungenAnweisungAnweisungen|EPSILON AnweisungVWZahl |REZahl |WHZahl[Anweisungen] |FARBEFarbwert |STIFTZahl Farbwertrot|blau|gruen|gelb|schwarz ZahlErsteZifferZiffern ZiffernZifferZiffern|EPSILON Ziffer 0 | 1 | ... | 9 ErsteZiffer 1 | 2 | ... | 9

  25. Kontextfreie Grammatik Grammatikdefinitionen immer vollständig angeben! G=(N,T,P,s) kfG, d.h. Regeln haben die Gestalt X  b, mit |x| |b| Hinweis auf Chomsky-Hierarchie (s. TI-Vorlesungen); Grammatik-Transformationen in Betracht ziehen Hervorzuhebendes Problem bei kfG: Mehrdeutigkeit; Eingabewort: if a1 then if a2 then s1 else s2 S -> if E then S | if E then S else S | s1 | s2 E -> a1 | a2 Danglingelse Lösung: S -> S1 | S2 S1 -> if E then S1 else S1 | s1 | s2 S2 -> if E then S | if E then S1 else S2 E -> a1 | a2

  26. 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ErsteZifferZiffern ZiffernZifferZiffern|EPSILON Ziffer 0 | 1 | ... | 9 ErsteZiffer 1 | 2 | ... | 9 AnweisungenAnweisungAnweisungen|EPSILON AnweisungVWZahl|WHZahl[Anweisungen]

  27. Beispiel: ZR – eine Sprache für einen Zeichenroboter Kleiner Sprachausschnitt: ZahlErsteZifferZiffern ZiffernZifferZiffern|EPSILON Ziffer 0 | 1 | ... | 9 ErsteZiffer 1 | 2 | ... | 9

  28. Beispiel: ZR – eine Sprache für einen Zeichenroboter

  29. Übungsaufgabe • Geben Sie eine (reguläre) Grammatik für die Sprache der Uhrzeiten an. • Entwerfen/Erzeugen Sie einen Automaten. Vorgehen (allgemein): Beispielwörter, Beispiel-Nichtwörter, Muster, Muster spezifizieren, Grammatik entwerfen, Beispielwörter testen, Grammatik "justieren" bzw. transformieren bzw. nach alternativer Idee neu entwerfen, Automat generieren (hier: regGr NEA  DEA)

  30. Lösung der Übungsaufgabe Muster: ab : cd, a=0,1,2; b=0,1,2,3,4,5,6,7,8,9, wenn a=0,1 b=0,1,2,3, wenn a=2 c=0,1,2,3,4,5; d=0,1,2,3,4,5,6,7,8,9 U -> A : C A -> 0 B | 1 B | 2 Q B -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Q -> 0 | 1 | 2 | 3 C -> 0 B | 1 B | 2 B | 3 B | 4 B | 5 B ... ist nicht regulär (Prüfknopf in kfGEdit) – erste Regel! (aber eine schöne kfG)

  31. Lösung der Übungsaufgabe Regelbildung – rechte Seiten: Erstes Zeichen (Terminal) und Rest (Nichtterminal) U -> 0 H | 1 H | 2 K H -> 0 B | 1 B | 2 B | 3 B | 4 B | 5 B | 6 B | 7 B | 8 B | 9 B B -> : C C -> 0 Z | 1 Z | 2 Z | 3 Z | 4 Z | 5 Z Z -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 K -> 0 R | 1 R | 2 R | 3 R R -> : C Vollständige Definition angeben! s. kfGEdit

  32. Lösung der Übungsaufgabe DEA für die Sprache der Uhrzeiten: regGr  NEA  DEA

  33. Lösung der Übungsaufgabe Ein zugehöriger NEA ist konzeptionelle wesentlich übersichtlicher, erfordert aber eine grundlegende Behandlung des Nichtdeterminismus.

  34. Beispiel: ZR – eine Sprache für einen Zeichenroboter AnweisungenAnweisungAnweisungen|EPSILON AnweisungVWn |WHn[Anweisungen] DKA für obigen Grammatik-Ausschnitt

  35. Beispiel: ZR – eine Sprache für einen Zeichenroboter

  36. Beispiele für DKA und NKA • Musterbeispiele: • Sprache der Palindrome über {0,1} • Sprache der Palindrome über {0,1} mit (durch !) markierter Wortmitte • Für 1 gibt es keinen DKA, für 2 NKA und DKA. • Studienaufgabe: DKA für (n>0).

  37. Beispiele für DKA und NKA Lösung: Sprache der Palindrome über {0,1} mit (durch !) markierter Wortmitte

  38. 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]*

  39. Reguläre Ausdrücke für reguläre Sprachen

  40. Reguläre Ausdrücke für reguläre Sprachen

  41. Reguläre Ausdrücke für reguläre Sprachen Reguläre Ausdrücke zur Definition regulärer Sprachen Zahlen in ZR: [1-9][0-9]* Aktuelle Syntax von RegExp ist dem Gebrauch als Filter in vielen PS angepasst. Z.B. [...] Zeichenauswahl – genau ein Zeichen aus ... s. Arbeitsblatt: Reguläre Ausdrücke in Programmiersprachen.pdf Achtung: Rückwärtsreferenzen führen aus der Klasse der regulären Sprachen heraus.

  42. Arbeitsweise des Compilers

  43. Arbeitsweise eines Scanners Ein- und Ausgabe des Scanners: Viele kleine endliche Automaten entscheiden welche Schlüsselworte im Quelltext stehen. Token als Paare [Tokenname, Lexem] z.B.: [Wiederhole, "WH"] [Zahl, "12"] [KlammerAuf, "["] Quelltext besteht aus Zeichen und der Rechner weiß noch nicht wie diese zusammengehören.

  44. Beispiel: ZR – eine Sprache für einen Zeichenroboter ProgrammAnweisungen AnweisungenAnweisungAnweisungen|EPSILON AnweisungVWZahl |REZahl |WHZahl[Anweisungen] |FARBEFarbwert |STIFTZahl Farbwert:rot|blau|gruen|gelb|schwarz Zahl : [1-9][0-9]*

  45. Reguläre Grammatik  NEA  DEA farbwert.txt

  46. 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]* S, T, I, F, T

  47. Beispiel: ZR – eine Sprache für einen Zeichenroboter

  48. Beispiel: ZR – eine Sprache für einen Zeichenroboter per Hand ergänzen

  49. Arbeitsweise des Parsers Ein- und Ausgabe des Parsers: Grammatik von ZR in Form eines Kellerautomaten  Prüft ob Wort zur Sprache gehört Beinhaltet die aufgetretenen Terminale der Grammatik des Parsers #false erfolgt meinst durch Ausgabe von „Syntax Error“

  50. 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 so genannter S-Attribute für die Zielcodegenerierung

More Related