Java Jr: Fully Abstract Trace Semantics for a Core Java Language

We introduce an expressive yet semantically clean core Java-like language, Java JR, and provide it with a formal operational semantics based on traces of observable actions which represent interaction across package boundaries. A detailed example based on the Observer Pattern is used to demonstrate the intuitive character of the semantic model. We also show that our semantic trace equivalence is fully-abstract with respect to a natural notion of testing equivalence for object systems. This is the first such result for a full class-based OO-language with inheritance.

[1]  Sophia Drossopoulou,et al.  Towards an Operational Semantics and Proof of Type Soundness for Java , 2007 .

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[4]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[5]  Robin Milner,et al.  Definition of standard ML , 1990 .

[6]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[7]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[8]  Andrew M. Pitts,et al.  MJ: An imperative core calculus for Java and Java with effects , 2003 .

[9]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[10]  Susan Eisenbach,et al.  Formal underpinnings of Java , 1998, OOPSLA Addendum.

[11]  Davide Sangiorgi,et al.  A Fully-Abstract Model for the (cid:25) -calculus , 2022 .

[12]  Robin Milner,et al.  Theories for the Global Ubiquitous Computer , 2004, FoSSaCS.

[13]  J. Davenport Editor , 1960 .

[14]  Julian Rathke,et al.  A fully abstract may testing semantics for concurrent objects , 2005, Theor. Comput. Sci..

[15]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[16]  Anindya Banerjee,et al.  Stack-based access control and secure information flow , 2005, J. Funct. Program..

[17]  John McCarthy,et al.  Towards a Mathematical Science of Computation , 1962, IFIP Congress.

[18]  Sophia Drossopoulou,et al.  Describing the Semantics of Java and Proving Type Soundness , 1999, Formal Syntax and Semantics of Java.

[19]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[20]  Peter G. Harrison,et al.  Functional Programming , 1988 .

[21]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[22]  Tobias Nipkow Jinja: Towards a Comprehensive Formal Semantics for a Java-like Language , 2003 .

[23]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[24]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[25]  Luca Cardelli,et al.  Mobile Ambients , 1998, FoSSaCS.

[26]  P. J. Landin,et al.  Correspondence between ALGOL 60 and Church's Lambda-notation , 1965, Commun. ACM.

[27]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[28]  Davide Sangiorgi,et al.  A Fully Abstract Model for the [pi]-calculus , 1996, Inf. Comput..

[29]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[30]  Martin Wirsing,et al.  Formal Syntax and Semantics of Java , 1999 .

[31]  Gerald Jay Sussman,et al.  An Interpreter for Extended Lambda Calculus , 1975 .

[32]  C.-H. Luke Ong,et al.  Full Abstraction in the Lazy Lambda Calculus , 1993, Inf. Comput..

[33]  John McCarthy A Formal Description of a Subset of Algol , 1964 .

[34]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[35]  Gerald J. Sussman,et al.  Scheme: A Interpreter for Extended Lambda Calculus , 1998, High. Order Symb. Comput..

[36]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[37]  John H. Reppy,et al.  Higher-Order Concurrency , 1992 .

[38]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .