Faster and More Complete Extended Static Checking for the Java']Java Modeling Language

被引:3
|
作者
James, Perry R. [1 ]
Chalin, Patrice [1 ]
机构
[1] Concordia Univ, Dept Comp Sci & Software Engn, Dependable Software Res Grp, Montreal, PQ, Canada
关键词
Extended static checking; Static verification; Theorem provers; !text type='Java']Java[!/text] Modeling Language; JML4; ESC; ESC4;
D O I
10.1007/s10817-009-9134-9
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Extended Static Checking (ESC) is a fully automated formal verification technique. Verification in ESC is achieved by translating programs and their specifications into verification conditions (VCs). Proof of a VC establishes the correctness of the program. The implementations of many seemingly simple algorithms are beyond the ability of traditional Extended Static Checking (ESC) tools to verify. Not being able to verify toy examples is often enough to turn users off of the idea of using formal methods. ESC4, the ESC component of the JML4 project, is able to verify many more kinds of methods in part because of its use of novel techniques which apply multiple theorem provers. In particular, we present Offline User-Assisted ESC (OUA-ESC), a new form of verification that lies between ESC and Full Static Program Verification (FSPV). ESC is generally quite efficient, as far as verification tools go, but it is still orders of magnitude slower than simple compilation. As can be imagined, proving VCs is computationally expensive: While small classes can be verified in seconds, verifying larger programs of 50 KLOC can take hours. To help address the added cost of using multiple provers and this lack of scalability, we present the multi-threaded version of ESC4 and its distributed prover back-end.
引用
收藏
页码:145 / 174
页数:30
相关论文
共 33 条
  • [1] Faster and More Complete Extended Static Checking for the Java Modeling Language
    Perry R. James
    Patrice Chalin
    Journal of Automated Reasoning, 2010, 44
  • [2] Extended static checking for Java']Java
    Nelson, G
    MATHEMATICS OF PROGRAM CONSTRUCTION, PROCEEDINGS, 2004, 3125 : 1 - 1
  • [3] Extended Static Checking for Java']Java
    Flanagan, Cormac
    Leino, K. Rustan M.
    Lillibridge, Mark
    Nelson, Greg
    Saxe, James B.
    Stata, Raymie
    ACM SIGPLAN NOTICES, 2013, 48 (04) : 22 - 33
  • [4] Extended static checking for Java']Java
    Flanagan, C
    Leino, KRM
    Lillibridge, M
    Nelson, G
    Saxe, JB
    Stata, R
    ACM SIGPLAN NOTICES, 2002, 37 (05) : 234 - 245
  • [5] Enabling the Runtime Assertion Checking of Concurrent Contracts for the Java']Java Modeling Language
    Araujo, Wladimir
    Briand, Lionel C.
    Labiche, Yvan
    2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 786 - 795
  • [6] Types for atomicity: Static checking and inference for Java']Java
    Flanagan, Cormac
    Freund, Stephen N.
    Lifshin, Marina
    Qadeer, Shaz
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2008, 30 (04):
  • [7] More Sound Static Handling of Java']Java Reflection
    Smaragdakis, Yannis
    Balatsouras, George
    Kastrinis, George
    Bravenboer, Martin
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2015, 2015, 9458 : 485 - 503
  • [8] Canica: An ide for the Java']Java Modeling Language
    Perez, Angelica B.
    Cheon, Yoonsik
    Gates, Ann Q.
    PROCEEDINGS OF THE 10TH IASTED INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND APPLICATIONS, 2006, : 32 - +
  • [9] The virtual reality modeling language and Java']Java
    Brutzman, D
    COMMUNICATIONS OF THE ACM, 1998, 41 (06) : 57 - 64
  • [10] Implementing Java']Java Modeling Language Contracts with AspectJ
    Rebelo, Henrique
    Lima, Ricardo
    Cornelio, Marcio
    Soares, Sergio
    Ferreira, Leopoldo
    APPLIED COMPUTING 2008, VOLS 1-3, 2008, : 228 - 233