scispace - formally typeset
Proceedings ArticleDOI

Extended static checking for Java

TLDR
The Extended Static Checker for Java (ESC/Java) is introduced, an experimental compile-time program checker that finds common programming errors and provides programmers with a simple annotation language with which programmer design decisions can be expressed formally.
Abstract
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.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

The Daikon system for dynamic detection of likely invariants

TL;DR: Daikon is an implementation of dynamic detection of likely invariants; that is, the Daikon invariant detector reports likely program invariants, a property that holds at a certain point or points in a program.
Book ChapterDOI

The spec# programming system: an overview

TL;DR: The goals and architecture of thespec# programming system, consisting of the object-oriented Spec# programming language, the Spec# compiler, and the Boogie static program verifier, are described.
Journal ArticleDOI

EXE: Automatically Generating Inputs of Death

TL;DR: This article presents EXE, an effective bug-finding tool that automatically generates inputs that crash real code by solving the current path constraints to find concrete values using its own co-designed constraint solver, STP.
Book ChapterDOI

Pex: white box test generation for .NET

TL;DR: Pex automatically produces a small test suite with high code coverage for a .NET program by performing a systematic program analysis using dynamic symbolic execution, similar to path-bounded model-checking, to determine test inputs for Parameterized Unit Tests.
References
More filters
Proceedings ArticleDOI

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Book

Object-Oriented Software Construction

TL;DR: Object-Oriented Software Construction, second edition is the comprehensive reference on all aspects of object technology, from design principles to Object- Oriented techniques, Design by Contract, Object-O Oriented analysis, concurrency, persistence, abstract data types and many more.
Journal ArticleDOI

Symbolic model checking: 10/sup 20/ states and beyond

TL;DR: In this paper, a model-checking algorithm for mu-calculus formulas which uses R.E. Bryant's (1986) binary decision diagrams to represent relations and formulas symbolically is described.
Book ChapterDOI

Construction of Abstract State Graphs with PVS

TL;DR: This paper proposes a method for the automatic construction of an abstract state graph of an arbitrary system using the Pvs theorem prover.