A Lightweight Specification Language for Bounded Program Verification

This thesis presents a new light-weight specification language called JForge Specification Language (JFSL) for object-oriented languages such as Java. The language is amenable to bounded verification analysis by a tool called JForge that interprets JFSL specifications, fully integrates with a mainstream development environment, and assists programmers in examining counter example traces and debugging specifications. JFSL attempts to address challenges of specification languages such as inheritance, frame conditions, dynamic dispatch, and method calls inside specifications in the context of bounded verification. A collection of verification tasks illustrates the expressiveness and conciseness of JForge specifications and demonstrates effectiveness of the bounded verification technique. Thesis Supervisor: Daniel N. Jackson Title: Professor

[1]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[2]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[3]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[4]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[5]  James Gosling The Java Language Specification - Second Edition , 2000 .

[6]  Alexandr Andoni,et al.  Evaluating the “ Small Scope Hypothesis ” , 2002 .

[7]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[8]  Laurie Hendren,et al.  Soot: a Java bytecode optimization framework , 2010, CASCON.

[9]  Gregory D. Dennis A relational framework for bounded program verification , 2009 .

[10]  Patrice Chalin,et al.  Preliminary design of a unified JML representation and software infrastructure , 2009, FTfJP@ECOOP.

[11]  Derek Rayside,et al.  Agile specifications , 2009, OOPSLA Companion.

[12]  K. Rustan M. Leino,et al.  Data groups: specifying the modification of extended state , 1998, OOPSLA '98.

[13]  Peter Mueller,et al.  Reasoning About Method Calls in JML Specifications , 2005 .

[14]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[15]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[16]  Daniel Jackson,et al.  Bounded Verification of Voting Software , 2008, VSTTE.

[17]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[18]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .