143105a Design und Implementation fortgeschrittener Programmiersprachen
Zuletzt geändert: | 03.06.2024 / Özkan |
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: unregelmäßig |
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/ |