Die Arbeit untersucht einen Ansatz zur automatischen Softwareverifikation, der auf Pushdown-Systemen basiert. Pushdown-Systeme sind (vereinfacht gesagt) Transitionssysteme, deren Zustände einen Keller unbegrenzter Länge beinhalten; es besteht eine natürliche Beziehung zwischen diesen Systemen und Programmen mit rekursiven Prozeduren. Die Arbeit untersucht Model-Checking-Probleme auf Pushdown-Systemen, wobei sie zuvor bekannte Algorithmen verbessert, sowohl in asymptotischer Hinsicht als auch mit Blick auf praktische Verwendbarkeit. Die verbesserten Algorithmen werden in einem Werkzeug namens Moped verwendet. Moped ist ein Model-Checker für Linearzeitlogik (LTL) auf Pushdown-Systemen. Es kombiniert zwei unterschiedliche symbolische Techniken: automatentheoretische Ansätze werden benutzt, um den unendlichen Zustandsraum zu handhaben, der durch die Kontrolle eines Programms entsteht, und binäre Entscheidungsdiagramme (BDDs), um das Problem der Zustandsexplosion zu lindern, welches von der Repräsentation der Daten herrührt. Es wird anhand mehrerer Beispiele aufgezeigt, wie das so entstandene System benutzt werden kann, um Eigenschaften von Programmen mit rekursiven Prozeduren zu verifizieren. Darüberhinaus wurde Moped an automatisch erzeugten Abstraktionen einiger großer C-Programme getestet. Die Arbeit untersucht ebenfalls einige Optimierungen, mit denen die Effizienz des Model-Checkers gesteigert werden konnte.
«
Die Arbeit untersucht einen Ansatz zur automatischen Softwareverifikation, der auf Pushdown-Systemen basiert. Pushdown-Systeme sind (vereinfacht gesagt) Transitionssysteme, deren Zustände einen Keller unbegrenzter Länge beinhalten; es besteht eine natürliche Beziehung zwischen diesen Systemen und Programmen mit rekursiven Prozeduren. Die Arbeit untersucht Model-Checking-Probleme auf Pushdown-Systemen, wobei sie zuvor bekannte Algorithmen verbessert, sowohl in asymptotischer Hinsicht als auch mi...
»