Skip to main content
Log in

Referential transparency, definiteness and unfoldability

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

The term “referential transparency” is frequently used to indicate that a programming language has certain useful substitution properties. We observe, however, that the formal and informal definitions given in the literature are not equivalent and we investigate their relationships. To this end, we study the definitions in the context of a simple expression language and show that in the presence of non-determinism, the differences between the definitions are manifest. We propose a definition of “referential transparency”, based on Quine's, as well as of the related notions: definiteness and unfoldability. We demonstrate that these notions are useful to characterize programming languages.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abelson, H., Sussman, G.J.: Structure and interpretation of computer programs. Cambridge, Mass.: MIT Press 1985

    Google Scholar 

  2. Bauer, F.L., Wössner, H.: Algorithmic language and program development. Berlin Heidelberg New York: Springer 1982

    Google Scholar 

  3. Bauer, F.L. et al. The Munich project CIP, vol. I: The wide spectrum language CIP-L (Lect. Notes Comput. Sci., vol. 183). Berlin Heidelberg New York: Springer 1985

    Google Scholar 

  4. Broy, M.: A theory for nondeterminism, parallelism, communication, and concurrency. Theor. Comput. Sci. 45, 1–61 (1986)

    Google Scholar 

  5. Clinger, W.: Nondeterministic call by need is neither lazy nor by name. Proc. 1982 Symp. Lisp Funct. Progr., Pittsburgh, Pennsylvania pp. 226–234, 1982

  6. Couturat, L.: Opuscules et fragments inédits de Leibniz. Hildesheim: Georg Olm 1961

    Google Scholar 

  7. Frege, G.: Über Sinn und Bedeutung. Z. Philosophie philosophische Kritik 100, 25–50 (1892). English translation in: Geach, P., Black, M. (eds.) Translations from the philosophical writings of Gottlob Frege, pp. 56–78. Oxford: Blackwell 1952

    Google Scholar 

  8. Hennessy, M.C.B., Ashcroft, E.A.: Parameter-passing mechanisms and nondeterminism. Proc. Ninth ACM Symp. Theory Comput., pp. 306–311. Boulder, Colorado 1977

  9. Hogger, C.J.: Introduction to logic programming. London: Academic Press 1984

    Google Scholar 

  10. Horowitz, E.: Fundamentals of programming languages. Berlin Heidelberg New York: Springer 1983

    Google Scholar 

  11. Leibniz, G.W.: Nouveaux essais sur l'entendement humain, III, 2. In: Gottfried Wilhelm Leibniz — Sämtliche Schriften und Briefe VI, 6. Berlin (GDR): Akademie-Verlag 1962

    Google Scholar 

  12. Quine, W.V.O.: Mathematical logic. New York: Norton 1940

    Google Scholar 

  13. Quine, W.V.O.: Reference and modality. In: From a logical point of view, pp. 139–159. Cambridge, Mass.: Harvard University Press 1953

    Google Scholar 

  14. Quine, W.V.O.: Word and object. Cambridge, Mass: MIT Press 1960

    Google Scholar 

  15. Søndergaard, H., Sestoft, P.: Non-determinism in functional languages. Comput. J. (to appear)

  16. Søndergaard, H., Sestoft, P.: Referential transparency and allied notions. University of Copenhagen, Denmark, DIKU Research Report 88/7, 1988

    Google Scholar 

  17. Stoy, J.E.: Denotational semantics. Cambridge, Mass.: MIT Press 1977

    Google Scholar 

  18. Strachey, C.: Fundamental concepts in programming languages. Int. Summer School in Computer Programming, Copenhagen, Denmark 1967 (unpublished)

    Google Scholar 

  19. Waite, W.M., Goos, G.: Compiler construction. Berlin Heidelberg New York: Springer 1984

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Søndergaard, H., Sestoft, P. Referential transparency, definiteness and unfoldability. Acta Informatica 27, 505–517 (1990). https://doi.org/10.1007/BF00277387

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00277387

Keywords

Navigation