arrow
返回

Reasoning About Exceptional Behavior At the Level of Java Bytecode with ByteBack

delete2025-12-01
delete0
PRE
AI
M
Marco Paganoni *
C
Carlo A. Furia
DOI:10.1145/3712015delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
程序的非正常行为可能会显著增加其控制流,进而影响对其正确性的准确推理。另一方面,对实际程序进行形式化验证可能涉及异常处理——这是现代编程语言中普遍存在的特性。本文提出了一种新颖的方法来验证Java程序的异常行为,该方法扩展了我们先前在BYTEBAcx上的工作。BYTEBAcx基于程序的字节码运行,同时提供在源代码层面指定预期行为的方式;这一方法使BYTEBAcx区别于大多数针对源代码的当前最先进的验证器。为了以一种便于形式化推理的方式明确建模程序的异常行为,我们引入了Vimp:一种高级字节码表示,它扩展了Soot框架的Jimple,并加入了面向验证的特性,从而在字节码和Boogie中间验证语言之间充当中间层。通过这一中间层对字节码进行操作,带来了对新语言版本和变体的灵活性和适应性:正如我们的实验所示,BYTEBAcx能够验证涉及异常行为的所有Java版本程序,以及Scala和Kotlin(另外两种流行的JVM语言)程序。
Keyword:
Deductive Verification
Java Bytecode
Exceptions

期刊

F
Formal Aspects of Computing
IF:
1.4
论文数:
23
被引数:
471

机构

U
universita della svizzera italiana
学者数:
152
论文数: 68
被引数: 0
引用论文

引用论文

BML and Related Tools
err2009-01-01
err0
PREAI
errChrząszcz,Jacek; Huisman,Marieke; Schubert,Aleksy
err分享
err收藏
JayHorn: A Framework for Verifying Java programs
err2016-07-13
err0
PREAI
errTemesghen Kahsai; Philipp Rümmer; Huascar Sanchez; Martin Schäf
err分享
err收藏
The SeaHorn Verification Framework
err2015-07-16
err0
errOAAI
errArie Gurfinkel; Temesghen Kahsai; Anvesh Komuravelli; Jorge A. Navas
err分享
err收藏
A fully verified container library一个经过完全验证的容器库
err2018-09-01
err0
PREAI
errPolikarpova,Nadia; Tschannen,Julian; Furia,Carlo A.
err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
Modular invariants for layered object structures
err2006-10-01
err0
errOAAI
errPeter Müller; Arnd Poetzsch-Heffter; Gary T. Leavens
err分享
err收藏
学者 查看更多内容