Reflective Constraint Management for Languages on Virtual Platforms

Extending an object-oriented type system with assertions makes it possible for programs using reflection to rely on semantic information to ensure correct use of discovered types. Using extended reflective capabilities to access assertions in (dynamically) loaded class objects allows a variety of general and flexible verification techniques. The XVP (Extended Virtual Platform) implements these features by extending the Java Virtual Machine with the proposed functionalities. Its architecture and applications are described in the paper. One of the goals of the XVP is to provide a virtual platform that supports JML and the programming by contract methodology.

[1]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[2]  Gary T. Leavens,et al.  Concepts of behavioral subtyping and a sketch of their extension to component-based systems , 2000 .

[3]  Suad Alagic,et al.  Orthogonal to the Java Imperative , 1998, ECOOP.

[4]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[5]  John Tang Boyland,et al.  Formal Techniques for Java-Like Programs , 2007, ECOOP Workshops.

[6]  R. G. G. Cattell,et al.  Recent books , 2000, IEEE Spectrum.

[7]  Hendrik Tews,et al.  Reasoning about Java Classes (Preliminary Report) , 1998, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[8]  Gary T. Leavens,et al.  How the design of JML accommodates both runtime assertion checking and formal verification , 2003, Sci. Comput. Program..

[9]  Suad Alagić,et al.  Temporal Verification Theories for Java-like Classes , 2006 .

[10]  JacobsBart,et al.  Reasoning about Java classes , 1998 .

[11]  Myla Archer,et al.  Developing User Strategies in PVS: A Tutorial , 2003 .

[12]  Gary T. Leavens,et al.  A Thought on Specification Reflection , 2003 .

[13]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[14]  Suad Alagic,et al.  Behavioral Compatibility of Self-Typed Theories , 2002, ECOOP.

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

[16]  David Jordan,et al.  Java data objects , 2003 .

[17]  Mark Royer,et al.  Next Generation of Virtual Platforms , 2005 .

[18]  Greg Nelson,et al.  Extended static checking for Java , 2002, PLDI '02.