Beschreibungen von Programmiersprachen verstehen und in Hinblick auf Konzepte, auf die Unterstützung von Programmier-Paradigmen und auf Entwurfsziele analysieren können
Ausprägungen von Konzepten und Paradigmen in verschiedenen Programmiersprache vergleichen und bewerten können
hinterfragen, wie weit Programmiersprachen ein Programmierparadigma unterstützen und die von ihren Entwerfern gesteckten Entwurfsziele erreichen
Lerninhalte
Konzepte
Werte (Datenstrukturen und Ausdrücke).
Speicher (Variablen und Befehle)
Bindung (Vereinbarungen und Gültigkeitsbereiche).
Abstraktion (Funktionen, Prozeduren und Parameterübergabe).
Typsysteme (Überladen, Anpassungen, Polymorphie, Untertypen und Vererbung).
Ablaufsteuerung (Sprünge, Ausweg, Ausnahmen).
Nebenläufigkeit und Verteiltheit
Paradigmen (Programierstile)
Imperatives Programmieren.
Objekt-orientiertes Programmieren.
Nebenläufiges Programmieren.
Funktionales Programmieren.
Logisches Programmieren.
Prinzipien des Sprachentwurfs
Syntax.
Semantik.
Pragmatik.
In der Übung Anwendung der in der Vorlesung erworbenen Kenntnisse und Fähigkeiten bei der Untersuchung spezifischer Konzepte und Eigenschaften von spezifischer Programmiersprachen (z. B. Ada, Eiffel, Java, Haskell, Prolog)
Prüfungsformen
i.d.R. mündliche Prüfung
Dokumente (Skripte, Programme, Literatur, usw.)
David A. Watt: Programming Language Design Concepts, Chichester: Wiley and Sons (2004).
Robert W. Sebesta: Concepts of Programming Languages 5/e, Reading, MA: Addison-Wesley (2002).
Weiteres Lehrmaterial ist auf der Webseite des Veranstaltung zu finden:
Online-Fassung des Buches David A. Watt: Programmiersprachen - Konzepte und Paradigmen, München-Wien: Hanser (1996)
Folienkopien
Übungsaufgaben
Beschreibungen der Referenzsprachen Ada, Eiffel, Java, Haskell, Prolog
Hinweise auf Quellen im WWW
Implementierungen der Referenzsprachen Ada, Eiffel, Java, Haskell, Prolog stehen im Rechnernetz des Studiengangs zur Verfügung.