Syntaxbasierte Programmierwerkzeuge

Vorlesung Syntaxbasierte Programmierwerkzeuge

Dr. Lothar Schmitz
Wintertrimester 2004


=> Organisatorische Hinweise   => Quellen und Links   => Zur Terminplanung

Worum geht es?

Die von Compilerbauern entwickelten Techniken und Werkzeuge lassen sich nutzbringend in vielen anderen Bereichen einsetzen, z.B.

  • Steuerung von Programmen durch Kommandos mit flexibler Syntax.
  • Systematische Konvertierung von Dateiformaten, u.a. Datenbankinhalte zwischen verschiedenen Systemen sowie Konversion zwischen verschiedenen Textsystemen.
  • Übersetzung von Nicht-Programmiersprachen, z.B. von TeX nach Postscript.
Neben Compiler-Compilern beruhen viele Werkzeuge aus dem Unix-Umfeld auf diesen Techniken, darunter lex und yacc (Scanner- und Parsergeneratoren), grep (Informationssuche), sed (einfacher, programmierbarer Editor), awk, perl, python (Textmanipulationssprachen) sowie der bekannte emacs-Editor.

Weitere Inhalte der Vorlesung sind:
  • Wiederholung und Vertiefung der Grundlagen aus dem Bereich "Formale Sprachen".
  • "Grammar Engineering": Wie geht man beim Aufstellen von Syntax- beschreibungen und -transformationen systematisch vor?
  • Abarbeitungsmechanismen: Generierung von Analysatoren und Attributauswertern. Leistungsumfang und Unterschiede zwischen den angebotenen Werkzeugen.
  • Beispiel Dokumentenbearbeitung: Ein Werkzeugkasten zur Bearbeitung von LaTeX-Dokumenten.
In der in die Vorlesung integrierten Übungszeit wird Gelegenheit gegeben, die vorgestellten Techniken gleich zu erproben und zu vertiefen.


Organisatorische Hinweise:

Zeit und Ort:

    Die Vorlesung findet mittwochs ab 8.00 Uhr im Geb 33 / HS 0301 statt.
    Die Vorlesung beginnt mit einer Vorbesprechung am 7. Januar 2004.
    Die Vorlesung am 14. Januar 2004 fällt aus und wird zu einem geeigneten Zeitpunkt nachgeholt.
    In der Vorlesung am 21. Januar 2004 wird das zu verwendende Jaccie-System von Herrn Nico Krebs vorgeführt.


Der (benotete) Schein wird für insgesamt drei Leistungen vergeben:

  • Entwicklung und Dokumentation eines Einarbeitungsbeispiels und
  • Durchführung und Dokumentation einer Projektaufgabe -- evtl. im Team -- sowie
  • eine kurze mündliche Prüfung (ca 15 Minuten) über den Stoff der Vorlesung (gegen Ende des Trimesters, evtl. im April)
Die Einarbeitungsbeispiele und Projektaufgaben sollen nebst Dokumentation auf die künftige Jaccie-Homepage gestellt werden. Daher wird auf eine ordentliche Dokumentation Wert gelegt. Dazu wird es Beispiele und Vorgaben geben.

Jaccie mit Online-Dokumentation und weitere Materialien:


Geplante Vorlesungstermine und -themen:

  1. Vorbesprechung über Motivation, Organisation, Ablauf und Modalitäten des Scheinerwerbs (7. Januar)
  2. Vorführung des Demonstrations-Compiler-Compilers Jaccie durch Herrn Krebs (21. Januar)
  3. Grundlagen der lexikalischen Analyse (28. Januar) und
    Vergabe der Einarbeitungsaufgaben

  4. Grammar Engineering und Recursive-Descent-Analyse (4. Februar)
  5. Attribute Engineering und Verfahren von Jourdan (11. Februar)
  6. Beispiel Dokumentenbearbeitung: LaTeX nach Postscript (19. Februar) und
    Vergabe der Projektaufgaben

  7. Grundlagen der syntaktischen Analyse, speziell das LR-Verfahren (25. Februar)
  8. Weitere Syntaxanalyseverfahren: LL und Earley (3. März)

  9. Attributierte Grammatiken I: Theorie, Zyklenfreiheit, einfache Auswerter (10. März)
  10. Attributierte Grammatiken II: OAG, inkrementelle Auswerter (17. März)

  11. Vorstellung Projektergebnisse I (24. März)
  12. Vorstellung Projektergebnisse II (31. März)

Email an Lothar Schmitz

Zuletzt verändert am 29.01.2004