PI5506 Kernel-Architekturen in Programmiersprachen
- Prof. Dr. Dominikus Herzberg
- Prof. Dr. Dominikus Herzberg
Keine
Untersuchung kernel-basierter Programmiersprachen aus Sicht der Softwaretechnik.
Es gibt eine Reihe von Programmiersprachen, die aus einem kleinen Sprachkern bestehen und über Abstraktionsmechanismen und Sprachschichten zu mächtigen Sprachen ausgebaut werden. Beispiele für Kernel-Sprachen sind Lua, Julia, Io, Smalltalk, Lisp, Shen und Prolog. Viele dieser Sprachen sind interaktiv und hochgradig reflektiv, einige sind mit Fähigkeiten zur Metaprogrammierung ausgestattet. Nicht selten greifen Kernel-Sprachen Paradigmen abseits imperativer Programmierung auf, was sie besonders interessant macht.
In dieser Veranstaltung wird untersucht, wie solche Sprachen aufgebaut sind, welche softwaretechnischen Prinzipien angewendet werden, ob eine Sprache zum Bau großer Softwaresysteme geeignet ist, und in welcher Weise das gewählte Programmierparadigma für den Bau großer Softwaresysteme skaliert. Die Veranstaltung beginnt mit der Analyse der Sprachen Forth, Consize und Factor. Wahlweise werden diese Sprachen vertieft oder ergänzend weitere Sprachen untersucht.
Fachkompetenzen
- Die Studierenden können kernel-basierte Programmiersprachen einordnen, sie analysieren und ihren Aufbau durchdringen.
- Anhand von Fallstudien können sie die verwendeten Abstraktionsmechanismen ableiten und das Prinzip der Bildung von Sprachschichten identifizieren.
Methodenkompetenzen (fachlich & überfachlich)
- Die Studierenden können eine anwendungs- und forschungsorientierte Arbeitsweise nutzen.
Sozialkompetenzen
- Die Studierenden können fachübergreifende Diskussionen führen und den Stand der Technik sachlich verargumentieren.
Selbstkompetenzen
- Im Rahmen einer Hausübung bzw. eines Projekts können die Studierenden Beziehungen zwischen verschiedenen Kernel-Architekturen reflektieren, eigene Fragestellungen entwickeln und diese nach wissenschaftlichen Methoden bearbeiten.
- 6 CrP
- Arbeitsaufwand 180 Std.
- Präsenzzeit 60 Std.
- Selbststudium 120 Std.
- 4 SWS
- Seminaristischer Unterricht 2 SWS
- Praktikum 2 SWS
- Informatik (M.Sc. 2022)
Nein
Bonuspunkte werden gemäß § 9 (4) der Allgemeinen Bestimmungen vergeben. Art und Weise der Zusatzleistungen wird den Studierenden zu Veranstaltungsbeginn rechtzeitig und in geeigneter Art und Weise mitgeteilt.
Prüfungsvorleistung: Hausübungen (Anzahl wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)
Prüfungsleistung: Projektarbeit
- Brodie, L.: Thinking Forth, Punchy Publishing. http://thinking-forth.sourceforge.net/
- JonesForth http://rwmj.wordpress.com/2010/08/07/jonesforth-git-repository/
- Herzberg, D.: Konkatenative Programmierung mit Consize. Vorlesungsmanuskript. https://github.com/denkspuren/consize.
- Pestov, S.; Ehrenberg, D.; Groff, J.: Factor: a dynamic stack-based programming language. https://doi.org/10.1145/1899661.1869637
- Black, A. P.; Pollet, D.; Ducasse, S.; Nierstrasz, O.; Cassou, D.; Denker, M.; Thiede, C.; Rein, P.: Squeak by Example. https://squeak.org/documentation/
- Bezanson, J.; Karpinski, S.; Shah, V. B.; Edelman, A.: Julia: A Fast Dynamic Language for Technical Computing. https://arxiv.org/abs/1209.5145.
- Tarver, M.: The Book of Shen, 2nd Ed. Fast-Print Bookshop.
Rechtliche Hinweise
- Diese Informationen geben den in den Online-Diensten für Studierende erfassten Datenbestand wieder.
- Die rechtskräftigen und damit verbindlichen Fassungen der Modulhandbücher finden Sie im Amtlichen Mitteilungsblatt der THM (AMB).
- Alle gültigen Prüfungsbestimmungen für die THM-Studiengänge können Sie außerdem in komfortabler Leseversion über den Downloadbereich auf der Homepage des Prüfungsamts einsehen.