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

  • Alan Jeffrey
  • Julian Rathke
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3444)

Abstract

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.

References

  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)MATHGoogle Scholar
  2. 2.
    Abramsky, S., Ong, L.: Full abstraction in the lazy lambda calculus. Information and Computation 105, 159–267 (1993)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Alves-Foss, J. (ed.): Formal Syntax and Semantics of Java. LNCS, vol. 1523. Springer, Heidelberg (1999)Google Scholar
  4. 4.
    Attali, I., Caromel, D., Russo, M.: A formal executable semantics for Java. In: Proc. Formal Underpinnings of Java (1998)Google Scholar
  5. 5.
    Banerjee, A., Naumann, D.A.: Stack-based access control and secure information flow. J. Functional Programming (2005) (to appear)Google Scholar
  6. 6.
    Bierman, G.M., Parkinson, M.J., Pitts, A.M.: An imperative core calculus for Java and Java with effects. Technical Report 563, University of Cambridge Computer Laboratory (2003)Google Scholar
  7. 7.
    Brookes, S.D., Hoare, C.A.R., Roscoe, A.W.: A theory of communicating sequential processes. Journal of the ACM 31(3), 560–599 (1984)MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Cardelli, L., Gordon, A.: Mobile ambients. In: Proc. Foundations of Software Science and Computation Structures. LNCS. Springer, Heidelberg (1998)Google Scholar
  9. 9.
    Drossopoulou, S., Eisenbach, S.: Towards an operational semantics and proof of type soundness for Java. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  10. 10.
    Fiore, M.P., Moggi, E., Sangiorgi, D.: A fully-abstract model for the pi-calculus. In: Proc. IEEE Logic in Computer Science, p. 43. IEEE Computer Society, Los Alamitos (1996)Google Scholar
  11. 11.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proc. ACM Principles of Programming Languages, pp. 171–183 (1998)Google Scholar
  12. 12.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  13. 13.
    Gordon, M.J.C.: Experimental Programming Reports. PhD thesis, School of AI, University of Edinburgh (1973)Google Scholar
  14. 14.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: Java Language Specification, 2nd edn. The Java Series. Addison-Wesley, Reading (2000)Google Scholar
  15. 15.
    Hennessy, M.: Algebraic Theory of Processes. MIT Press, Cambridge (1988)MATHGoogle Scholar
  16. 16.
    Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)CrossRefGoogle Scholar
  17. 17.
    Jeffrey, A.S.A., Rathke, J.: A fully abstract testing semantics for concurrent objects. In: Proc. IEEE Logic in Computer Science, pp. 101–112. IEEE Computer Society Press, Los Alamitos (2002)Google Scholar
  18. 18.
    Landin, P.J.: A correspondence between ALGOL 60 and Church’s lambda-notation: Part I. Communications of the ACM 8(2), 89–101 (1965)CrossRefMathSciNetGoogle Scholar
  19. 19.
    McCarthey, J.: Towards a mathematical science of computation. In: Popplewell, C.M. (ed.) Information Processing 1962, pp. 21–28 (1963)Google Scholar
  20. 20.
    McCarthy, J.: A formal description of a subset of algol. In: Proc. IFIP WG Formal Language Description Languages for Computer Programming, pp. 1–12. North-Holland, Amsterdam (1966)Google Scholar
  21. 21.
    Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, Heidelberg (1980)Google Scholar
  22. 22.
    Milner, R.: Communication and mobile systems: the π-calculus. Cambridge University Press, Cambridge (1999)Google Scholar
  23. 23.
    Morris, J.H.: Lambda-calculus models of programming languages. PhD thesis, MIT (1968)Google Scholar
  24. 24.
    Nipkow, T.: Jinja: Towards a comprehensive formal semantics for a Java-like language. In: Proc. Marktobderdorf Summer School. IOS Press, Amsterdam (2003) (to appear)Google Scholar
  25. 25.
    Plotkin, G.D.: LCF considered as a programming language. Theoretical Computer Science 5, 223–255 (1977)CrossRefMathSciNetGoogle Scholar
  26. 26.
    Plotkin, G.D.: A structural approach to operational semantics. Report DAIMI FN-19, Computer Science Department, Aarhus University (1981)Google Scholar
  27. 27.
    Tofte, M., Milner, R., Harper, R.: The Definition of Standard ML. MIT Press, Cambridge (1990)Google Scholar
  28. 28.
    Reppy, J.: Higher-Order Concurrency. PhD thesis, Cornell University, Technical Report TR 92-1285 (1992)Google Scholar
  29. 29.
    Sangiorgi, D., Walker, D.: The pi-calculus: A Theory of mobile processes. Cambridge University Press, Cambridge (2001)Google Scholar
  30. 30.
    Steel, T.B.: A formalization of semantics for programming language description. In: Proc. IFIP WG Formal Language Description Languages for Computer Programming, pp. 25–36 (1969)Google Scholar
  31. 31.
    Sussman, G.J., Steele Jr., G.L.: Scheme:an interpreter for extended lambda-calculus. Technical Report Memo 349, MIT AI Lab (1975)Google Scholar
  32. 32.
    Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Alan Jeffrey
    • 1
    • 2
  • Julian Rathke
    • 3
  1. 1.Bell LabsLucent TechnologiesChicagoUSA
  2. 2.DePaul UniversityChicagoUSA
  3. 3.University of SussexBrightonUK

Personalised recommendations