Bounded model checking has become a powerful approach to analyzing software, particularly for bug detection. Despite the undecidability of proving arbitrary properties of a program, model checking can detect bugs and generate a witness demonstrating how the faulty behavior can be reached. This fully automated process makes it an attractive technique for continuous integration in industrial settings. Modern SAT and SMT solvers enable the analysis of large state spaces, even though the underlying problems are \(\mathcal{N}\mathcal{P}\) -hard. In this work, we explain the details of bounded model checking of a stack-based virtual machine with the example of the Java Virtual Machine bytecode instructions. These virtual machines are commonly used as intermediate languages for various front-ends. In theory, the ability to analyze programs in such a virtual machine enables the analysis of multiple source languages.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Overview of Bounded Model Checking for Stack-Based Virtual Machines

  • Matthias Güdemann

摘要

Bounded model checking has become a powerful approach to analyzing software, particularly for bug detection. Despite the undecidability of proving arbitrary properties of a program, model checking can detect bugs and generate a witness demonstrating how the faulty behavior can be reached. This fully automated process makes it an attractive technique for continuous integration in industrial settings. Modern SAT and SMT solvers enable the analysis of large state spaces, even though the underlying problems are \(\mathcal{N}\mathcal{P}\) -hard. In this work, we explain the details of bounded model checking of a stack-based virtual machine with the example of the Java Virtual Machine bytecode instructions. These virtual machines are commonly used as intermediate languages for various front-ends. In theory, the ability to analyze programs in such a virtual machine enables the analysis of multiple source languages.