Advertisement

Relational Semantics for Higher-Order Programs

  • Kamal Aboul-Hosn
  • Dexter Kozen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4014)

Abstract

Most previous work on the semantics of higher-order programs with local state involves complex storage modeling with pointers and memory cells, complicated categorical constructions, or reasoning in the presence of context. In this paper we show how a relatively simple relational semantics can be used to avoid these complications. We provide a natural relational semantics for a programming language with higher-order functions. The semantics is purely compositional, with all contextual considerations completely encapsulated in the state. We show several equivalence proofs using this semantics based on examples of Meyer and Sieber (1988).

Keywords

Binary Relation Output State Relational Semantic Active Environment Operational Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Pitts, A.M.: Operational semantics and program equivalence. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 378–412. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Plotkin, G.: Full abstraction, totality and PCF (1997)Google Scholar
  3. 3.
    Cartwright, R., Felleisen, M.: Observable sequentiality and full abstraction. In: Conf. Record of 19th Ann. ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 1992, pp. 328–342. ACM Press, New York (1992)CrossRefGoogle Scholar
  4. 4.
    Milne, R., Strachey, C.: A Theory of Programming Language Semantics. Halsted Press, New York (1977)Google Scholar
  5. 5.
    Scott, D.: Mathematical concepts in programmng language semantics. In: Proc. of 1972 Spring Joint Computer Conferences, pp. 225–234. AFIPS Press (1972)Google Scholar
  6. 6.
    Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1981)MATHGoogle Scholar
  7. 7.
    Halpern, J.Y., Meyer, A.R., Trakhtenbrot, B.A.: The semantics of local storage, or what makes the free-list free (preliminary report). In: Conf. Record of 11th Ann. ACM Symp. on Principles of Programming Languages, POPL 1984, pp. 245–257. ACM Press, New York (1984)Google Scholar
  8. 8.
    Stark, I.: Categorical models for local names. LISP and Symb. Comput. 9(1), 77–107 (1996)CrossRefGoogle Scholar
  9. 9.
    Reyonlds, J.: The essence of ALGOL. In: de Bakker, J., van Vliet, J.C. (eds.) Algorithmic Languages, pp. 345–372. North Holland, Amsterdam (1981)Google Scholar
  10. 10.
    Oles, F.J.: A category-theoretic approach to the semantics of programming languages. PhD thesis. Syracuse University (1982)Google Scholar
  11. 11.
    O’Hearn, P.W., Tennent, R.D.: Semantics of local variables. In: Fourman, M.P., Johnstone, P.T., Pitts, A.M. (eds.) Applications of Categories in Computer Science. London Math. Soc. Lect. Note Series, vol. 177, pp. 217–238. Cambridge Univ. Press, Cambridge (1992)Google Scholar
  12. 12.
    Meyer, A.R., Sieber, K.: Towards fully abstract semantics for local variables. In: Conf. Record of 15th ACM Symp. on Principles of Programming Languages, POPL 1988, pp. 191–203. ACM Press, New York (1988)CrossRefGoogle Scholar
  13. 13.
    Mason, I.A., Talcott, C.L.: Axiomatizing operational equivalence in the presence of effects. In: Proc. of 4th Ann. IEEE Symp. Logic in Computer Science, LICS 1989, pp. 284–293. IEEE Comput. Soc. Press, Los Alamitos (1989)Google Scholar
  14. 14.
    Mason, I.A., Talcott, C.L.: Equivalence in functional languages with effects. J. of Funct. Program. 1, 287–327 (1991)MATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Mason, I.A., Talcott, C.L.: References, local variables and operational reasoning. In: Proc. of 7th Ann. IEEE Symp. on Logic in Computer Science, LICS 1992, pp. 186–197. IEEE Comput. Soc. Press, Los Alamitos (1992)CrossRefGoogle Scholar
  16. 16.
    Pitts, A.M., Stark, I.D.B.: Observable properties of higher order functions that dynamically create local names, or what’s new? In: Borzyszkowski, A.M., Sokolowski, S. (eds.) MFCS 1993. LNCS, vol. 711, pp. 122–141. Springer, Heidelberg (1993)Google Scholar
  17. 17.
    Pitts, A.M.: Operationally-based theories of program equivalence. In: Dybjer, P., Pitts, A.M. (eds.) Semantics and Logics of Computation, Publications of the Newton Institute, pp. 241–298. Cambridge Univ. Press, Cambridge (1997)CrossRefGoogle Scholar
  18. 18.
    Pitts, A.M., Stark, I.D.B.: Operational reasoning in functions with local state. In: Gordon, A.D., Pitts, A.M. (eds.) Higher Order Operational Techniques in Semantics, pp. 227–273. Cambridge Univ. Press, Cambridge (1998)Google Scholar
  19. 19.
    Abramsky, S., Honda, K., McCusker, G.: A fully abstract game semantics for general references. In: Proc. 13th Ann. IEEE Symp. on Logic in Computer Science, LICS 1998, pp. 334–344. IEEE Comput. Soc. Press, Los Alamitos (1998)Google Scholar
  20. 20.
    Laird, J.: A game semantics of local names and good variables. In: Walukiewicz, I. (ed.) FOSSACS 2004. LNCS, vol. 2987, pp. 289–303. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  21. 21.
    Abramsky, S., McCusker, G.: Linearity, sharing and state: a fully abstract game semantics for idealized ALGOL with active expressions. In: Proc. of Linear Logic 1996 Tokyo Meeting. Electron. Notes on Theor. Comput. Sci., vol. 3, pp. 2–14. Elsevier, Amsterdam (1996)Google Scholar
  22. 22.
    Abramsky, S., McCusker, G.: Call-by-value games. In: Nielsen, M. (ed.) CSL 1997. LNCS, vol. 1414, pp. 1–17. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  23. 23.
    Riecke, J.G., Sandholm, A.: A relational account of call-by-value sequentiality. In: Proc. of 12th Ann. IEEE Symp. on Logic in Computer Science, LICS 1997, pp. 258–267. IEEE Comp. Soc. Press, Los Alamitos (1997)CrossRefGoogle Scholar
  24. 24.
    Riecke, J.G., Viswanathan, R.: Isolating side effects in sequential languages. In: Conf. Record of 22th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 1995, pp. 1–12. ACM Press, New York (1995)CrossRefGoogle Scholar
  25. 25.
    Fiore, M.P., Plotkin, G., Turi, D.: Abstract syntax and variable binding. In: Proc. of 14th Ann. IEEE Symp. on Logic in Computer Science, LICS 1999, pp. 193–202. IEEE Comp. Soc. Press, Los Alamitos (1999)Google Scholar
  26. 26.
    Harel, D., Kozen, D., Tiuryn, J.: Dynamic Logic. MIT Press, Cambridge (2000)MATHGoogle Scholar
  27. 27.
    Kozen, D.: Kleene algebra with tests. ACM Trans. on Program. Lang. and Syst. 19(3), 427–443 (1997)CrossRefGoogle Scholar
  28. 28.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Kamal Aboul-Hosn
    • 1
  • Dexter Kozen
    • 1
  1. 1.Department of Computer ScienceCornell UniversityIthacaUSA

Personalised recommendations