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
- Das Skript zur Vorlesung (!)
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
- Programmierung in mindestens einer höheren Programmiersprache
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.
-
- Programming language pragmatics
-
Morgan Kaufmann2015.
[BibTex]
-
- Compilers: Principles, Techniques, and Tools
-
Addison-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.