Corona [Update: 20.05.2020]: Aufgrund der Corona-Situation finden die Veranstaltungen des SRA im Sommersemester 2020 online statt. Details (wie Termine und Links) entnehmen Sie bitte der jeweiligen Veranstaltungswebseite bzw. dem Stud.IP.

Programmiersprachen und Übersetzer


Semester:
Sommersemester

Leistungspunkte
5

Dozent:
Christian Dietrich

Betreuer:
Tobias Landsberg

E-Mail:
psu@sra.uni-hannover.de

Zeit/Raum:
  • Vorlesung: Dienstags, 16:00 - 17:30 Uhr, auf Twitch
  • Tafelübung: Freitags, 10:30 - 12:00 Uhr, auf Twitch
  • Gruppenübung: Termine siehe Stud.IP, in BigBlueButton

Stud.IP-Veranstaltung:

Bitte beachten Sie unsere Informationen zur Online-Lehre.

Lernziele

Die Studierenden können sich nach dieser Vorlesung schnell in einer neuen Programmiersprache zurechtfinden und zügig an den Punkt kommen, an dem sie effektiv effiziente Programme schreiben können. Zu diesem Zweck erlernen sie in dieser Veranstaltung die wichtigsten Kernkonzepte von Programmiersprachen sowie einen Grundlegenden Überblick über den Aufbau und den Fähigkeiten von Übersetzern.

Die Veranstaltung beschäftigt sich mit zwei großen Bereichen, die das Thema der Programmiersprachen von zwei Seiten angehen. Zum einen werden, top-down, die wichtigsten, immer wieder auftretenden Kernkonzepte von Programmiersprachen (Typen, Namen, Objekte, Operationen) betrachtet und besprochen, wie aus ihnen die vorherrschenden Programmierparadigmen (funktional, objektorientiert) zusammengesetzt sind. Hierdurch erlangt der Studierende eine abstrakte Sicht auf Programmiersprachen, die das effektive Erlernen neuer Sprachen beschleunigt. Von der anderen Seite kommend (bottom-up) erlernen die Studierenden den prinzipiellen Ablauf des Übersetzungsvorgangs und die dazu notwendigen Techniken (Syntaxanalyse, semantische Analyse, Zwischencodeerzeugung und Maschinencodeerzeugung). Flankiert werden diese Inhalte durch Lerninhalte zur Optimierung und zum Laufzeitsystem.

Materialien

Evaluation

Semesterplan

Woche Di 16:00 Uhr Do 10:30 Uhr Fr 10:30 Uhr
20.04. VL1Einleitung
27.04. VL2Syntaktische Analyse TÜ1Syntaktische Analyse
04.05. VL3Typen
11.05. VL4Namen TÜ2Typen und Namen
18.05. VL5Semantische Analyse
25.05. VL6Objekte TÜ3Semantische Analyse
01.06. Pfingsten
08.06. VL7Operationen
15.06. VL8Zwischencodeerzeugung TÜ4Objekte, Operationen und Codeerzeugung
22.06. VL9Optimierung
29.06. VL10Maschinencode TÜ5Optimierung und Maschinencode
06.07. VL11Das objektorientierte Paradigma
13.07. VL12Das funktionale Paradigma TÜ6Maschinencode und Programmierparadigmen
20.07. VL13PSÜ AMA

Vorkenntnisse

Literaturempfehlungen

Die genannten Bücher dienen zur Ergänzung des Vorlesungsstoffes, decken ihn aber nicht zu hundert Prozent ab. Die genannte Auflage versteht sich als Mindestauflage, es kann also problemlos eine neuerer Auflage herangezogen werden.

  1. Programming language pragmatics
    Michael Lee ScottMorgan Kaufmann2015.
    [BibTex]
  2. Compilers: Principles, Techniques, and Tools
    Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. UllmanAddison-Wesley20070-321-49169-6.
    [BibTex]

Anmeldung und weitere Infos

Für diese Veranstaltung ist eine Online-Anmeldung über Stud.IP erforderlich. Bitte registrieren Sie sich (falls noch nicht geschehen) für Stud.IP und tragen Sie sich dort in die entsprechende Veranstaltung ein.

Stud.IP Veranstaltungen
Vorlesung
Übung