Advertisement

LISP and Symbolic Computation

, Volume 9, Issue 1, pp 7–76 | Cite as

Global state considered unnecessary: An introduction to object-based semantics

  • Uday S. Reddy
Article

Abstract

Semantics of imperative programming languages is traditionally described in terms of functions on global states. We propose here a novel approach based on a notion ofobjects and characterize them in terms of their observable behavior. States are regarded as part of the internal structure of objects and play no role in the observable behavior. It is shown that this leads to considerable accuracy in the semantic modelling of locality and single-threadedness properties of objects.

Keywords

Imperative programs Syntactic control of interference Denotational semantics Objects 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    I. J. Aalbersberg and G. Rozenberg. Theory of traces.Theoretical Comput. Sci., 60:1–82, 1988.Google Scholar
  2. 2.
    S. Abramsky. Interaction categories and communicating sequential processes. In A. W. Roscoe, editor,A Classical Mind: Essays in Honor of C. A. R. Hoare, pages 1–16. Prentice-Hall International, 1994.Google Scholar
  3. 3.
    S. Abramsky and R. Jagadeesan. New foundations for geometry of interaction. InProceedings, Seventh Annual IEEE Symposium on Logic in Computer Science, pages 211–222. IEEE Computer Society Press, June 1992.Google Scholar
  4. 4.
    S. Abramsky and R. Jagadeesan. Games and full completeness for multiplicative linear logic.J. Symbolic Logic, 59(2):543–574, 1994.Google Scholar
  5. 5.
    S. Abramsky, R. Jagadeesan, and P. Malacaria. Full abstraction for PCF (extended abstract). InTheoretical Aspects of Computer Software, volume 789 ofLNCS, pages 1–15. Springer-Verlag, 1994.Google Scholar
  6. 6.
    G. Agha.Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.Google Scholar
  7. 7.
    K. R. Apt. Ten years of Hoare's logic: A survey.ACM Trans. Program. Lang. Syst., 3(4):431–483, October 1981.Google Scholar
  8. 8.
    H. P. Barendregt.The Lambda Calculus — Its Syntax and Semantics, 2nd Edition. North-Holland, 1984.Google Scholar
  9. 9.
    P. N. Benton, G. M. Bierman, V. C. V. de Paiva, and J. M. E. Hyland. Term assignment for intuitionistic linear logic. Technical Report 262, Computer Laboratory, University of Cambridge, August 1992.Google Scholar
  10. 10.
    G. Berry. Stable models of typed λ-calculi. InFifth Intern. Colloq. Aut., Lang. and Program., volume 62 ofLNCS, pages 72–88. Springer-Verlag, 1978.Google Scholar
  11. 11.
    G. M. Bierman.On Intuitionistic Linear Logic. PhD thesis, Computer Laboratory, University of Cambridge, December 1993.Google Scholar
  12. 12.
    C. Brown and D. Gurr. A categorical linear framework for petri nets. InProceedings, Fifth and Annual IEEE Symposium on Logic in Computer Science, pages 208–218. IEEE Computer Society Press, June 1990.Google Scholar
  13. 13.
    R. Cartwright, P.-L. Curien, and M. Felleisen. Full abstract semantics for observably sequential languages.Inf. Comput., 111(2):297–401, June 1994.Google Scholar
  14. 14.
    J. W. de Bakker. W.-P. de Roever, and G. Rozenberg, editors.Linear Time, Branching Time and Partial Order in Logics and Models of Concurrency, volume 354 ofLNCS. Springer-Verlag, 1989.Google Scholar
  15. 15.
    D. P. Freidman and D. S. Wise. An approach to fair applicative multiprogramming. In G. Kahn, editor,Semantics of Concurrent Computation, volume 70 ofLNCS, pages 203–226. Springer-Verlag, 1979.Google Scholar
  16. 16.
    J.-Y. Girard. Linear logic.Theoretical Comput. Sci., 50:1–102, 1987.Google Scholar
  17. 17.
    J.-Y. Girard. Towards a geometry of interaction. In Gray and Scedrov [19], pages 69–108.Google Scholar
  18. 18.
    J.-Y. Girard, Y. Lafont, and P. Taylor.Proofs and Types. Cambridge Univ. Press, 1989.Google Scholar
  19. 19.
    J. W. Gray and A. Scedrov, editors.Categories in Computer Science and Logic, volume 92 ofContemp. Math. AMS, 1989.Google Scholar
  20. 20.
    C. A. Gunter.Semantics of Programming Languages: Structures and Techniques. MIT Press, 1992.Google Scholar
  21. 21.
    V. Gupta.Chu Spaces: A Model of Concurrency. PhD thesis, Stanford University, August 1994.Google Scholar
  22. 22.
    J. Y. Halpern, A. R. Meyer, and B. A. Trahktenbrot. The semantics of local storage, or what makes the free list free? InTenth Ann. ACM Symp. on Princ. of Program. Lang., pages 245–257. ACM, 1983.Google Scholar
  23. 23.
    M. Hennessy. A fully abstract denotational model for higher-order processes.InfComp, 112(1):55–95, July 1994.Google Scholar
  24. 24.
    C. A. R. Hoare. An axiomatic basis for computer programming.Comm. ACM, 12:576–583, 1969.Google Scholar
  25. 25.
    C. A. R. Hoare. Procedures and parameters: An axiomatic approach. In E. Engeler, editor,Symp. Semantics of Algorithmic Languages, volume 188 ofLect. Notes Math., pages 102–116. Springer-Verlag, 1971.Google Scholar
  26. 26.
    C. A. R. Hoare. Proof of correctness of data representations.Acta Informatica, 1:271–281, 1972.Google Scholar
  27. 27.
    C. A. R. Hoare.Communicating Sequential Processes. Prentice-Hall International, London, 1985.Google Scholar
  28. 28.
    J. M. E. Hyland and C.-H. L. Ong. On full abstraction for PCF (preliminary version). Manuscript, Cambridge University, October 1994.Google Scholar
  29. 29.
    T. Jim and A. R. Meyer. Full abstraction and the context lemma. In T. Ito and A. R. Meyer, editors,Theoretical Aspects of Computer Software, volume 526 ofLNCS, pages 131–151. Springer-Verlag, 1991.Google Scholar
  30. 30.
    G. Kahn and D. B. MacQueen. Coroutines and networks of parallel processes. InInformation Processing 77, pages 993–998, 1977.Google Scholar
  31. 31.
    R. M. Keller and G. Lindstrom. Approaching distributed database implementations through functional programming concepts. InIntl. Conf. on Distributed Computing Systems. IEEE, May 1985.Google Scholar
  32. 32.
    J. Lambek. Multicategories revisited. In Gray and Scedrov [19].Google Scholar
  33. 33.
    S. MacLane.Categories for the Working Mathematician. Springer-Verlag, 1971.Google Scholar
  34. 34.
    A. Mazurkiewicz. Concurrent program schemes and their interpretations. DAIMI Rep. PB 78, Aarhus University, Aarhus, 1977.Google Scholar
  35. 35.
    A. Mazurkiewicz. Basic notions of trace theory. In de Bakker et al. [14], pages 285–363.Google Scholar
  36. 36.
    A. R. Meyer and K. Sieber. Towards fully abstract semantics for local variables. InFifteenth Ann. ACM Symp. on Princ. of Program. Lang., pages 191–203. ACM, 1988.Google Scholar
  37. 37.
    R. Milner. An algebraic definition of simulation between programs. InProc. Second Intern. Joint Conf. on Artificial Intelligence, pages 481–489, London, 1971. The British Computer Society.Google Scholar
  38. 38.
    R. Milner.Communication and Concurrency. Prentice Hall, 1989.Google Scholar
  39. 39.
    J. C. Mitchell. Type systems for programming languages. In J. van Leeuwen, editor,Handbook of Theoretical Computer Science, Volume B, pages 365–458. North-Holland, Amsterdam, 1990.Google Scholar
  40. 40.
    P. Naur (ed). Report on the algorithmic language ALGOL 60.Comm. ACM, 3(5):299–314, May 1960.Google Scholar
  41. 41.
    M. Odersky, D. Rabin, and P. Hudak. Call by name, assignment and the lambda calculus. InTwentieth Ann. ACM Symp. on Princ. of Program. Lang. ACM, 1993.Google Scholar
  42. 42.
    P. W. O'Hearn.Semantics of Noninterference: A Natural Approach. PhD thesis, Queen's University, Kingston, Canada, 1990.Google Scholar
  43. 43.
    P. W. O'Hearn. Linear logic and interference control. InCategory Theory and Computer Science, volume 350 ofLNCS, pages 74–93. Springer-Verlag, 1991.Google Scholar
  44. 44.
    P. W. O'Hearn. A model for syntactic control of interference.Math. Struct. Comput. Sci., 3:435–465, 1993.Google Scholar
  45. 45.
    P. W. O'Hearn, A. J. Power, M. Takeyama, and R. D. Tennent. Syntactic control of interference revisited. InProc. Math. Foundations of Program. Semantics: 11th Intern. Conf., New Orleans, March 1995. Tulane University. (to appear).Google Scholar
  46. 46.
    P. W. O'Hearn and U. S. Reddy. Objects, interference and Yoneda embedding. InProc. Math. Foundations of Program. Semantics: 11th Intern. Conf., New Orleans, March 1995. Tulane University. (to appear).Google Scholar
  47. 47.
    P. W. O'Hearn and R. D. Tennent. Semantics of local variables. In M. P. Fourman, P. T. Johnstore, and A. M. Pitts, editors,Applications of Categories in Computer Science, pages 217–238. Cambridge Univ. Press, 1992.Google Scholar
  48. 48.
    P. W. O'Hearn and R. D. Tennent. Parametricity and local variables. Technical Report SU-CIS-93-30, Syracuse University, October 1993. (to appear in Journal of the ACM).Google Scholar
  49. 49.
    P. W. O'Hearn and R. D. Tennent. Semantical analysis of specification logic, Part 2.Inf. Comput., 107(1):25–57, 1993.Google Scholar
  50. 50.
    F. J. Oles. Type algebras, functor categories and block structure. In M. Nivat and J. C. Reynolds, editors,Algebraic Methods in Semantics, pages 543–573. Cambridge Univ. Press, 1985.Google Scholar
  51. 51.
    S. L. Peyton Jones and J. Launchbury. State in Haskell.J. Lisp and Symbolic Comput., this volume, 1995.Google Scholar
  52. 52.
    S. L. Peyton Jones and P. Wadler. Imperative functional programming. InTwentieth Ann. ACM Symp. on Princ. of Program. Lang. ACM, 1993.Google Scholar
  53. 53.
    B. C. Pierce and D. N. Turner. Object-oriented programming without recursive types. InTwentieth Ann. ACM Symp. on Princ. of Program. Lang., pages 299–312, ACM, 1993.Google Scholar
  54. 54.
    G. Plotkin and G. Winskel. Bistructures, bidomains and linear logic. InICALP '94, volume 820 ofLNCS. Springer-Verlag, 1994.Google Scholar
  55. 55.
    G. D. Plotkin. LCF considered as a programming language.Theoretical Comput. Sci., 5:223–255, 1977.Google Scholar
  56. 56.
    V. Pratt. The pomset model of parallel processes: Unifying the temporal and the spatial. InSeminar on Concurrency, volume 197 ofLNCS, pages 180–196. Springer-Verlag, 1984.Google Scholar
  57. 57.
    U. S. Reddy. Global state considered unnecessary: Semantics of interference-free imperative programming. InACM SIGPLAN Workshop on State in Program. Lang., pages 120–135. Technical Report YALEU/DCS/RR-968, June 1993.Google Scholar
  58. 58.
    U. S. Reddy. A linear logic model of state. Electronic manuscript, University of Illinois (anonymous FTP from cs.uiuc.edu), October 1993.Google Scholar
  59. 59.
    U. S. Reddy. A linear logic model of state (extended abstract). Technical report, University of Glasgow, January 1993.Google Scholar
  60. 60.
    U. S. Reddy. Passivity and independence. InProceedings, Ninth Annual IEEE Symposium on Logic in Computer Science, pages 342–352. IEEE Computer Society Press, July 1994.Google Scholar
  61. 61.
    U. S. Reddy and S. N. Kamin. Two semantic models of object-oriented languages. In C. A. Gunter and J. C. Mitchell, editors,Theoretical Aspects of Object-Oriented Programming, pages 463–496. MIT Press, 1994.Google Scholar
  62. 62.
    C. Retoré.Réseaux et Séquents Ordonnés Mathématiques. PhD thesis, Université Paris 7, February 1993. (English translation available from the author).Google Scholar
  63. 63.
    J. C. Reynolds. Syntactic control of interference. InACM Symp. on Princ. of Program. Lang., pages 39–46. ACM, 1978.Google Scholar
  64. 64.
    J. C. Reynolds.The Craft of Programming. Prentice-Hall International, London, 1981.Google Scholar
  65. 65.
    J. C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van Vliet, editors,Algorithmic Languages, pages 345–372. North-Holland, 1981.Google Scholar
  66. 66.
    J. C. Reynolds. Idealized Algol and its specification logic. In D. Neel, editor,Tools and Notions for Program Construction, pages 121–161. Cambridge Univ. Press, 1982.Google Scholar
  67. 67.
    J. C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Carnegie-Mellon University, June 1988.Google Scholar
  68. 68.
    J. C. Reynolds. Syntactic control of interference, Part II. InIntern. Colloq. Aut., Lang. and Program., volume 372 ofLNCS, pages 704–722. Springer-Verlag, 1989.Google Scholar
  69. 69.
    D. S. Scott. Relating theories of the lambda calculus. InTo H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 403–450. Academic Press, 1980.Google Scholar
  70. 70.
    E. Shapiro.Concurrent Prolog: Collected Papers. MIT Press, 1987. (Two volumes).Google Scholar
  71. 71.
    K. Sieber. New steps towards full abstraction for local variables. InACM SIGPLAN Workshop on State in Program. Lang., pages 88–100. Technical Report YALEU/DCS/RR-968, Yale Yale University, New Haven, June 1993.Google Scholar
  72. 72.
    K. Sieber. Full abstraction for the second order subset of an Algol-like language (preliminary report). Technical Bericht A 01/94, Universiaet des Saarlandes, Saarbruecken, February 1994.Google Scholar
  73. 73.
    J. E. Stoy.Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, 1977.Google Scholar
  74. 74.
    V. Swarup, U. S. Reddy, and E. Ireland. Assignments for applicative languages. In R. J. M. Hughes, editor,Conf. on Functional Program. Lang. and Comput. Arch., volume 523 ofLNCS, pages 192–214. Springer-Verlag, 1991.Google Scholar
  75. 75.
    R. D. Tennent. Semantics of interference control.Theoretical Comput. Sci., 27:297–310, 1983.Google Scholar
  76. 76.
    R. D. Tennent. Denotational semantics of Algol-like languages. Internal Tech. Report 88-IR-02, Queen's University, September 1988. (To appear in Abramsky, S., Gabbay, D. M. and Maibaum, T. S. E. (eds)Handbook of Logic in Computer Science, Vol II, Oxford University Press).Google Scholar
  77. 77.
    R. D. Tennent. Semantical analysis of specification logic.Inf. Comput., 85(2):135–162, 1990.Google Scholar
  78. 78.
    R. D. Tennent.Semantics of Programming Languages. Prentice-Hall International, London, 1991.Google Scholar
  79. 79.
    P. Wadler. Is there a use for linear logic? InProc. Symp. on Partial Evaluation and Semantics-Based Program Manipulation, pages 255–273. ACM, 1991. (SIGPLAN Notices, Sep. 1991).Google Scholar
  80. 80.
    S. Weeks and M. Felleisen. On the orthogonality of assignments and procedures in Algol. InTwentieth Ann. ACM Symp. on Princ. of Program. Lang. ACM, 1993.Google Scholar
  81. 81.
    P. Wegner. Dimensions of object-based language design. InObject Oriented Prog. Syst., Lang. and Applications. ACM SIGPLAN, 1987.Google Scholar
  82. 82.
    G. Winskel. An introduction to event structures. In de Bakker et al. [14], pages 364–397.Google Scholar
  83. 83.
    G. Winskel. Stable bistructure models of PCF. InMath. Foundations of Computer Science, volume 841 ofLNCS. Springer-Verlag, 1994.Google Scholar
  84. 84.
    G.-Q. Zhang.Logic of Domains. Birkhäuser, Boston, 1991.Google Scholar
  85. 85.
    G.-Q. Zhang. Some monoidal closed categories of stable domains and event structures.Math. Struct. Comput. Sci., 3:259–276, 1993.Google Scholar

Copyright information

© Kluwer Academic Publishers 1996

Authors and Affiliations

  • Uday S. Reddy
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois at Urbana-ChampaignUrbana

Personalised recommendations