Semesterwochenstunden 4 Vorlesung + 2 Übung
ECTS-Punkte 9

Ziele

Dieses Modul hat die folgenden Ziele:

  • höherstufige, getypte funktionale Programmierung anwenden können
  • Verständnis rekursiver Datenstrukturen und Algorithmen, Zusammenhänge mit Mengenlehre
  • Korrektheit beweisen und Laufzeit abschätzen
  • Typabstraktion und Modularisierung verstehen
  • Struktur von Programmiersprachen verstehen
  • einfache Programmiersprachen formal beschreiben können
  • einfache Programmiersprachen implementieren können
  • anwendungsnahe Rechenmodelle mit maschinennahen Rechenmodellen realisieren können
  • Praktische Programmiererfahrung, Routine im Umgang mit Interpretern und Übersetzern

Inhalt

Die folgenden Inhalte werden den Studierenden vermittelt:

  • Funktionale Programmierung
  • Algorithmen und Datenstrukturen (Listen, Bäume, Graphen; Korrektheitsbeweise; asymptotische Laufzeit)
  • Typabstraktion und Module
  • Programmieren mit Ausnahmen
  • Datenstrukturen mit Zustand
  • Struktur von Programmiersprachen (konkrete und abstrakte Syntax, statische und dynamische Syntax)
  • Realisierung von Programmiersprachen (Interpreter, virtuelle Maschinen, Übersetzer)