08.079.732 Programmanalyse

Veranstaltungsdetails

Lehrende/r: Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel

Veranstaltungsart: Vorlesung/Übung

Anzeige im Stundenplan: 08.079.732

Semesterwochenstunden: 4

Credits: 6,0

Unterrichtssprache: Deutsch

Min. | Max. Teilnehmerzahl: - | -

Voraussetzungen / Organisatorisches:
Vorlesung "Programmiersprachen". Gute Programmierkenntnisse.

Inhalt:
Programmanalysen sind ein fundamentales Werkzeug der Softwareentwicklung und treten in vielfältiger Form in der Praxis auf. Man kann dabei grob drei Einsatzgebiete von Programmanalysen unterscheiden:


  1. Zum Bug Finding verwendet man Analysen, die Fehlerquellen in einem Program auffinden bzw. die Abstinenz solcher Fehler validieren. Zum Beispiel: type checking, bounds checking, information flow.
  2. Für Compiler Optimierungen verwendet man Analysen, die Eigenschaften eines Programms berechnen, welche Optimierungen ermöglichen. Zum Beispiel: reaching definitions, constant propagation.
  3. Für Editor Support verwendet man Analysen, die Informationen über ein Programm ableiten um damit Tools zu speisen, die Entwickler beim Programmieren unterstützen. Zum Beispiel: Code completion, Refactorings.


Die Entwurfsmöglichkeiten für Programmanalysen sind entsprechend vielfältig und es haben sich verschiedene Analysetechniken etablieren können. Das Ziel der Veranstaltung "Programmanalysen" ist das Studierende die Grundlagen des Entwurfs von Programmanalysen erlernen, für ein gegebenes Einsatzgebiet geeignete Analysetechniken auswählen können, und einfache Programmanalysen selbst entwickeln und bewerten können. Dazu werden wir eine Auswahl der folgenden Themen besprechen:

  • Code smells
  • Program semantics
  • Dynamic analysis
  • Type systems
  • Control-flow graphs and data-flow analyses
  • Abstract interpretation
  • Soundness, Recall, and Precision

Empfohlene Literatur:


  • Fachartikel, die im Laufe der Veranstaltung bekanntgegeben werden
  • "Types and Programming Languages" von Benjamin C. Pierce
  • "Principles of Program Analysis" von Flemming Nielson, Hanne R. Nielson, and Chris Hankin

Termine
Datum Von Bis Raum Lehrende/r
1 Di, 16. Apr. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
2 Di, 23. Apr. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
3 Di, 30. Apr. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
4 Di, 7. Mai 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
5 Di, 14. Mai 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
6 Di, 21. Mai 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
7 Di, 28. Mai 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
8 Di, 4. Jun. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
9 Di, 11. Jun. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
10 Di, 18. Jun. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
11 Di, 25. Jun. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
12 Di, 2. Jul. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
13 Di, 9. Jul. 2019 14:00 16:00 05 426 Univ.-Prof. Dr. Sebastian Erdweg; Sven Keidel
Veranstaltungseigene Prüfungen
Beschreibung Datum Lehrende/r Pflicht
1. Mündliche Prüfung k.Terminbuchung Ja
2. Mündliche Prüfung (Wdh.) k.Terminbuchung Ja
Übersicht der Kurstermine
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
Lehrende/r
Univ.-Prof. Dr. Sebastian Erdweg
Sven Keidel