Diese Website verwendet nur technisch notwendige Cookies. In der Datenschutzerklärung können Sie mehr dazu erfahren.

Zum Hauptinhalt springen
Logo, Startseite der Hochschule der Medien
Veranstaltungsbeschreibung

143105a Design und Implementation fortgeschrittener Programmiersprachen

Zuletzt geändert:07.12.2020 / von Carlsburg
EDV-Nr:143105a
Studiengänge: Computer Science and Media (Master), Prüfungsleistung im Modul Design und Implementation fortgeschrittener Programmiersprachen in Semester 1 2 3
Häufigkeit: S24; S25
Dozent:
Sprache: Deutsch
Art: -
Umfang: 4 SWS
ECTS-Punkte: 5
Prüfungsform:
Bemerkung zur Veranstaltung: Deutsch
Beschreibung: Die Veranstaltung verlässt die übliche Ebene der "Benutzung" einer Programmiersprache und beginnt eine fundamentale Betrachtung von Programmiersprachen und ihrer Implementation. Für Studierende entsteht dadurch eine völlig neue Sichtweise die im Anschluss zu erheblichen Steigerungen in den Kompetenzen bezüglich Design und Implementation führt. Eine typische Aussage von Teilnehmern ist "danach sieht man Informatik nochmals völlig neu". Im Kurs wird interaktiv ein Interpreter entwickelt, in dessen Kontext fundamentale Methoden des Baus von Programmiersprachen vermittelt werden. Dazu gehören: -Diskussion der Semantik und Implementierung von Rekursion, -Tail-Call-Eliminierung, Lazy Evaluation, Closures, Exceptions, -Continuations und dynamischer Typisierung Einstieg in die Thematik -durch Betrachtung lediglich elementarer Operationen auf AST Ebene. -Implementierung von AST-Interpreter, Bytecode-Übersetzer und -Interpreter sowie Just-In-Time Übersetzern. Betrachtung der -Realisierung dieser Konzepte in verschiedenen Programmiersprachen, u.a. Scheme, Haskell, Smalltalk, Self, JavaSript, Java und C#. Die Kompetenz von Studierenden, eine Programmiersprache zu benutzen, wird erweitert durch die Kompetenz, eine solche zu entwerfen und zu bauen. Gestärkt wird die Kompetenz der kritschen Hinterfragung von Eigenschaften von Programmiersprachen sowie die Fähigkeit, Oberflächenphänomene ("syntactic sugar") auf Kerneigenschaften zurückzuführen. Die praktische Arbeit besteht in der individuellen Entwicklung eines Interpreters einer beliebigen Programmiersprache. Absolventen des Kurses erwerben ein wissenschaftlichs Verständnis von Programmierung weit jenseits regulärer Programmierkurse in Verbindung mit der Fähigkeit, Eigenschaften von Programmiersprachen und Laufzeitumgebungen kritisch und basierend auf "first principles" beurteilen zu können.
English Title: Design and Implementation of Advanced Programming Languages
English Abstract: Based on a sound foundation of functional programming paradigms and compiler technology, the course develops a deep understanding of virtual machine design and implementation in the context of specific language features. The course starts from "first principles" of computer languages and develops an interpreter and its runtime system. Understanding computing goes hand in hand with developing highly performing language features. The practical part consists of the implementation of an interpreter in some programming language.
Literatur: Hal Abelson's, Jerry Sussman's and Julie Sussman's Structure and Interpretation of Computer Programs (MIT Press, 1984; ISBN 0-262-01077-1), Peter van Roy, Seif Haridi Concepts, Techniques, and Models of Computer Programming Textbook and Reference Work MIT Press, hardcover, 900pp+xxix, ISBN 0-262-22069-5, March 2004

Weitere Literatur finden Sie in der HdM-Bibliothek.
Internet: lambda-the-ultimate.org/