inf481 - Software Analysis (Veranstaltungsübersicht)

inf481 - Software Analysis (Veranstaltungsübersicht)

Department für Informatik 6 KP
Modulteile Semesterveranstaltungen Sommersemester 2023 Prüfungsleistung
Vorlesung
  • Kein Zugang 2.01.481 - Software Analysis Lehrende anzeigen
    • Prof. Dr. Heike Wehrheim
    • Jan Frederik Haltermann, M. Sc.
    • Nicola Anna Thoben

    Dienstag: 10:15 - 11:45, wöchentlich (ab 11.04.2023)
    Donnerstag: 10:15 - 11:45, wöchentlich (ab 13.04.2023)

    Software analyses extract facts about programs from source code. Such facts can be employed by compilers to optimize programs during compilation, but can also be used to verify correctness of programs. In this course, we will study different software analysis techniques, in particular various data-flow analyses and abstract interpretation.

Übung
  • Kein Zugang 2.01.481 - Software Analysis Lehrende anzeigen
    • Prof. Dr. Heike Wehrheim
    • Jan Frederik Haltermann, M. Sc.
    • Nicola Anna Thoben

    Dienstag: 10:15 - 11:45, wöchentlich (ab 11.04.2023)
    Donnerstag: 10:15 - 11:45, wöchentlich (ab 13.04.2023)

    Software analyses extract facts about programs from source code. Such facts can be employed by compilers to optimize programs during compilation, but can also be used to verify correctness of programs. In this course, we will study different software analysis techniques, in particular various data-flow analyses and abstract interpretation.

Hinweise zum Modul
Teilnahmevoraussetzungen

Nützliche Vorkenntnisse: Programmierung, Logik

Prüfungszeiten

Wöchentliche Übungsaufgaben, Praktikumsaufgaben im Block, mündliche Prüfung am Ende

Prüfungsleistung Modul

Klausur oder mündl. Prüfung

Kompetenzziele

Softwareanalysen dienen der Berechnung von Fakten über Programme aus dem Programmtext. Solche Fakten können beispielsweise vom Compiler zur Optimierung während der Übersetzung eingesetzt werden, aber auch zur Verifikation von Korrektheitseigenschaften genutzt werden. Die Studierenden lernen verschiedene Analyseverfahren kennen, spezifizieren selber solche Verfahren und implementieren sie.
Fachkompetenzen
Die Studierenden:

  • lernen Datenflussanalysen kennen und können selber solche spezifizieren
  • benenen die Bestandteile eines Datenflusssystems
  •  wissen, wann Widening Operatoren für eine Datenflussanalyse nötig sind
  • können abstrakte Domänen und Operatoren für die Abstrakte Interpretation entwickeln und anwenden
  • kennen Prädikatabstraktion und das Prinzip der Gegenbeispiel-gesteuerten Abstraktionsverfeinerung
  • wissen, wann und wozu SSA Formen eingesetzt werden
  • können die Präzision und Skalierbarkeit von points-to Analysen abschätzen

Methodenkompetenzen

  • können Analysen formal definieren
  • können Eigenschaften von Analysen beweisen
  • können Analysen implementieren

Sozialkompetenzen
Die Studierenden:

  • bearbeiten in Gruppen Übungsaufgaben, diskutieren Ergebnisse
  • implementierten verteilt an einer Aufgabenstellung

Selbstkompetenzen
Die Studierenden:

  • organisieren sich selber bei der Arbeit an den Aufgabenstellungen des Moduls