Toward reliable modular programs
Toward reliable modular programs
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unification-based pointer analysis with directional assignments
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-Oriented Software Construction
Object-Oriented Software Construction
Flow analysis and optimization of LISP-like structures
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Precise and efficient static array bound checking for large embedded C programs
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Class-level modular analysis for object oriented languages
SAS'03 Proceedings of the 10th international conference on Static analysis
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Abstract interpretation with alien expressions and heap structures
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
The Spec# Programming System: Challenges and Directions
Verified Software: Theories, Tools, Experiments
Bakar Kiasan: flexible contract checking for critical systems using symbolic execution
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Enhancing spark's contract checking facilities using symbolic execution
SIGAda '11 Proceedings of the 2011 ACM annual international conference on Special interest group on the ada programming language
Formal methods for smartcard security
Foundations of Security Analysis and Design III
Hi-index | 0.00 |
The program state for object-oriented languages, such as Java or C#, consists of both variables local to procedures and variables stored in the global heap. The variables stored in the heap are the fields of objects (i.e., fields of class instances). This paper proposes a technique for inferring properties of such object-oriented programs. The technique divides the work into two interacting parts: a flow-sensitive analysis that tracks the local and global state as seen at each particular program point, and a flow-insensitive analysis that tracks properties that are common among all ''valid'' instances of a class, independent of the program counter. The analysis is sound and works in the presence of many object references (aliasing). For precision, the analysis makes use of a recent methodology for object invariants, which makes explicit when each object's invariant is supposed to hold (valid objects) or is allowed to be violated. out the program, either during test or in operation. Algorithms for detecting multi-threading errors in execution traces, such as deadlocks and data races. *Specification Languages and Logics. Formal methods scientists have investigated logics and developed technologies that are suitable for model checking and theorem proving, but monitoring can reveal new observation-based foundational logics. *Program Instrumentation. Techniques for instrumenting programs, at the source code or object code/byte code level, to emit relevant events to an observer. *Program Guidance. Techniques for guiding the behavior of a program once its specification is violated. This ranges from standard exceptions to advanced planning. Guidance can also be used during testing to expose errors. Both foundational and practical aspects of dynamic monitoring were encouraged. The papers in this volume were reviewed by the program committee consisting, besides editors, ofSaddek Bensalem(VERIMAG Laboratory)Rance Cleaveland(State University of New York at Stony Brook)Michael Ernst(Massachusetts Institute of Technology)Patrice Godefroid(Bell Laboratories)Gerard Holzmann(Bell Laboratories)Jim Larus(Microsoft Research)Insup Lee(University of Pennsylvania)John Rushby(SRI International)Joseph Sifakis(VERIMAG Laboratory)Reid Simmons(Carnegie Mellon University)Olog Sokolsky(University of Pennsylvania) also by Susanne Graf, Moonjoo Kim, Oded Maler, Laurent Mounier, and Stavros Tripakis. This volume will be published as volume 55, issue 2, in the series Electronic Notes in Theoretical Computer Science (ENTCS). This series is published electronically through the facilities of Elsevier Science B.V. and its auspices. The volumes in the ENTCS series can be accessed at the URL http://www.elsevier.nl/locate/entcs A printed version of the current volume is distributed to the participants at the workshop in Berlin. 23 July 2001 Klaus Havelund, Grigore Rosu