Author:
Dubslaff Clemens,Wienhöft Patrick,Fehnker Ansgar
Abstract
AbstractRecursive state machines (RSMs) are state-based models for procedural programs with wide-ranging applications in program verification and interprocedural analysis. Model-checking algorithms for RSMs and related formalisms have been intensively studied in the literature. In this article, we devise a new model-checking algorithm for RSMs and requirements in computation tree logic (CTL) that exploits the compositional structure of RSMs by ternary model checking in combination with a lazy evaluation scheme. Specifically, a procedural component is only analyzed in those cases in which it might influence the satisfaction of the CTL requirement. We implemented our model-checking algorithms and evaluate them on randomized scalability benchmarks and on an interprocedural data-flow analysis of Java programs, showing both practical applicability and significant speedups in comparison to state-of-the-art model-checking tools for procedural programs.
Funder
Deutsche Forschungsgemeinschaft
Technische Universität Dresden
Publisher
Springer Science and Business Media LLC
Reference51 articles.
1. The Apache™ FOP Project. https://xmlgraphics.apache.org/fop/. Accessed 31 Jan 2024 (2016)
2. The AVR Simulation and Analysis Framework . https://github.com/avrora-framework/avrora. Accessed 31 Jan 2024 (2016)
3. Alur, R., Benedikt, M., Etessami, K., Godefroid, P., Reps, T., Yannakakis, M.: Analysis of recursive state machines. ACM Trans. Program. Lang. Syst. 27(4), 786–818 (2005)
4. Alur, R., Bouajjani, A., Esparza, J.: Model Checking Procedural Programs, pp. 541–572. Springer, Cham (2018)
5. Alur, R., Yannakakis, M.: Model checking of hierarchical state machines. ACM Trans. Program. Lang. Syst. 23(3), 273–303 (2001)