Universität Bremen FB3 TZI BISS | |||||||||||||||||||||||||||||||||||||||
AG BS > Lehre > WS 2007/2008 > | |||||||||||||||||||||||||||||||||||||||
Statische Analyse durch abstrakte Interpretation, WS 2007/2008 |
|||||||||||||||||||||||||||||||||||||||
Diese Seite gibt weitere Informationen zur Vorlesung. Wir bemühen uns diese Informationen so aktuell wie möglich zu halten. Inhalt dieser SeiteTermine
ÜberblickUnter der statischen Analyse eines Programms versteht man die korrekte, endliche und approximative Berechnung der möglichen Programmausführungen. Die Approximation ist natürlich erforderlich, weil andernfalls in der Regel gar keine Berechnung mit endlichem Zeit/Speicheraufwand möglich wäre. "Korrekt" bedeutet dabei, dass alle realen Programmausführungen in dem durch die approximative Berechnung eingegrenzten Wirkungsbereich liegen (sog. Über-Approximation). Bei einer adäquaten Approximation (d.h. Abstraktion) kann man daher folgern, dass Korrektheitsaussagen über das abstrahierte Programm in eine Korrektheitsaussage über das konkrete Programm übersetzbar sind. Das Verfahren ist aufgrund der Abstraktion jedoch nicht vollständig: Verletzungen einer Korrektheitseigenschaft auf abstrakter Ebene sind untern Umständen mit den konkreten Variablenbelegungen und Kontrollstrukturen des Programms gar nicht möglich. Statische Analyse findet heute eine weite Anwendung in der Praxis, mit teilweise äusserst leistungsfähiger Werkzeugunterstützung: Im Compilerbau werden Codeoptimierungen mit Hilfe statischer Analyse auf Zulässigkeit geprüft. Vor allem bei sicherheitsrelevanten Systemen wird entwickelter Code auf die Abwesenheit von Laufzeitfehlern (z.B. Speicherbereichsüberschreitungen, Auftreten arithmetischer Ausnahmen) überprüft. Für die automatische Testfallerzeugung werden Verfahren der statischen Analyse verwendet, um die Nichterreichbarkeit bestimmter Codekomponenten nachzuweisen und (mit einer Variante der nachfolgend beschriebenen abstrakten Interpretation) um automatisch Testfälle und zugehörige Daten zu erzeugen. Die wichtigste Technik für statische Analysen ist abstrakte Interpretation: Hier wird die o.g. Approximation durch eine Abstraktionsabbildung von den konkreten Variablenbelegungen und Ablaufstrukturen auf abstrahierte Valuationen und Strukturen abgebildet. Abstrakte Interpretation steht daher im Vordergrund dieser Vorlesung. Inhalte der Vorlesung:
Alle benötigten Konzepte und Definitionen werden im Rahmen der Vorlesung eingeführt. Ein Vorlesungsmanuskript wird zur Verfügung gestellt. In den Übungen werden die eingeführten Methoden auf konkrete Programme eines eingeschränkten C-Spachdialektes angewendet. Für Hörer dieser Vorlesung könnte ebenfalls die Vorlesung Testautomatisierung II von Interesse sein: Dort wird abstrakte Interpretation durch Intervall-Analysis vertieft für die Testfall-/Testdatengenerierung angwendet. VeranstaltungsinhalteSession 1
Session 2
Session 3
Session 4
Session 5
Session 6
Session 7
Hintergrundmaterial
Übungszettel
LeistungsnachweiseEinen benoteten Leistungsnachweis erhaltet Ihr bei erfolgreich erbrachter Prüfungsleistung:
Die genauen Bedingungen werden in der ersten Vorlesung verhandelt. Literatur |
|||||||||||||||||||||||||||||||||||||||
Autor: jp |
|||||||||||||||||||||||||||||||||||||||
AG Betriebssysteme, Verteilte Systeme |
|