PI5506 Kernel-Architekturen in Programmiersprachen

Modulverantwortliche
  • Prof. Dr. Dominikus Herzberg
Lehrende
  • Prof. Dr. Dominikus Herzberg
Notwendige Voraussetzungen zur Teilnahme

Keine

Kurzbeschreibung

Untersuchung kernel-basierter Programmiersprachen aus Sicht der Softwaretechnik.

Inhalte

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.

Qualifikations- und Lernziele

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.
ECTS-Leistungspunkte (CrP)
  • 6 CrP
  • Arbeitsaufwand 180 Std.
  • Präsenzzeit 60 Std.
  • Selbststudium 120 Std.
Lehr- und Lernformen
  • 4 SWS
  • Seminaristischer Unterricht 2 SWS
  • Praktikum 2 SWS
Studiensemester
  • Informatik (M.Sc. 2022)
Dauer
1 Semester
Häufigkeit des Angebots
Einmal im Jahr
Unterrichtssprache
Deutsch
Bonuspunkte

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üfungsleistungen

Prüfungsvorleistung: Hausübungen (Anzahl wird den Studierenden rechtzeitig und in geeigneter Weise bekannt gegeben.)

Prüfungsleistung: Projektarbeit

Benotung
Die Bewertung des Moduls erfolgt gemäß §§ 9, ggf. 12 (Teilleistungen), ggf. 18 (Arbeiten, Kolloquien) der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung).
Verwendbarkeit
Gemäß § 5 der Allgemeinen Bestimmungen (Teil I der Prüfungsordnung) Verwendbarkeit in allen Masterstudiengänge der THM möglich.
Literatur, Medien
  • 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