Extended static checking for Java']Java

被引:313
|
作者
Flanagan, C [1 ]
Leino, KRM [1 ]
Lillibridge, M [1 ]
Nelson, G [1 ]
Saxe, JB [1 ]
Stata, R [1 ]
机构
[1] Compaq Syst Res Ctr, Palo Alto, CA 94301 USA
关键词
design; documentation; verification; compile-time program checking;
D O I
10.1145/543552.512558
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software development and maintenance are costly endeavors. The cost can be reduced if more software defects are detected earlier in the development cycle. This paper introduces the Extended Static Checker for Java (ESC/Java), an experimental compile-time program checker that finds common programming errors. The checker is powered by verification-condition generation and automatic theorem-proving techniques. It provides programmers with a simple annotation language with which programmer design decisions can be expressed formally. ESC/Java examines the annotated software and warns of inconsistencies between the design decisions recorded in the annotations and the actual code, and also warns of potential runtime errors in the code. This paper gives an overview of the checker architecture and annotation language and describes our experience applying the checker to tens of thousands of lines of Java programs.
引用
收藏
页码:234 / 245
页数:12
相关论文
共 50 条
  • [31] Static Identification of Injection Attacks in Java']Java
    Spoto, Fausto
    Burato, Elisa
    Ernst, Michael D.
    Ferrara, Pietro
    Lovato, Alberto
    Macedonio, Damiano
    Spiridon, Ciprian
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2019, 41 (03):
  • [32] Sawja: Static Analysis Workshop for Java']Java
    Hubert, Laurent
    Barre, Nicolas
    Besson, Frederic
    Demange, Delphine
    Jensen, Thomas
    Monfort, Vincent
    Pichardie, David
    Turpin, Tiphaine
    FORMAL VERIFICATION OF OBJECT-ORIENTED SOFTWARE, 2011, 6528 : 92 - +
  • [33] An Evaluation of Static Java']Java Bytecode Watermarking
    Hamilton, James
    Danicic, Sebastian
    WORLD CONGRESS ON ENGINEERING AND COMPUTER SCIENCE, VOLS 1 AND 2, 2010, : 1 - 8
  • [34] Static Analysis of Java']Java Dynamic Proxies
    Fourtounis, George
    Kastrinis, George
    Smaragdakis, Yannis
    ISSTA'18: PROCEEDINGS OF THE 27TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, 2018, : 209 - 220
  • [35] Featherweight Java']Java with dynamic and static overloading
    Bettini, Lorenzo
    Capecchi, Sara
    Venneri, Betti
    SCIENCE OF COMPUTER PROGRAMMING, 2009, 74 (5-6) : 261 - 278
  • [36] CoffeeStrainer - Statically checking structural constraints on Java']Java programs
    Bokowski, B
    OBJECT-ORIENTED TECHNOLOGY: ECOOP'98 WORKSHOP READER, 1998, 1543 : 380 - 381
  • [37] A JPSL Based Model Checking Approach for Java']Java Programs
    Shu, XinFeng
    Li, YanLin
    Gao, WeiRan
    STRUCTURED OBJECT-ORIENTED FORMAL LANGUAGE AND METHOD, SOFL+MSVL 2022, 2023, 13854 : 30 - 49
  • [38] Checking Access to Protected Members in the Java']Java Virtual Machine
    Coglio, Alessandro
    JOURNAL OF OBJECT TECHNOLOGY, 2005, 4 (08): : 55 - 76
  • [39] Tool demonstration: CHET: Checking specifications in Java']Java systems
    Reiss, SP
    13TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 2005, : 165 - 168
  • [40] Checking the conformance of Java']Java classes against algebraic specifications
    Nunes, Isabel
    Lopes, Antonia
    Vasconcelos, Vasco
    Abreu, Joao
    Reis, Luis S.
    FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2006, 4260 : 494 - +