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.
Similar content being viewed by others
References
Abelson, H., Sussman, G.J.: Structure and interpretation of computer programs. Cambridge, Mass.: MIT Press 1985
Bauer, F.L., Wössner, H.: Algorithmic language and program development. Berlin Heidelberg New York: Springer 1982
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
Broy, M.: A theory for nondeterminism, parallelism, communication, and concurrency. Theor. Comput. Sci. 45, 1–61 (1986)
Clinger, W.: Nondeterministic call by need is neither lazy nor by name. Proc. 1982 Symp. Lisp Funct. Progr., Pittsburgh, Pennsylvania pp. 226–234, 1982
Couturat, L.: Opuscules et fragments inédits de Leibniz. Hildesheim: Georg Olm 1961
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
Hennessy, M.C.B., Ashcroft, E.A.: Parameter-passing mechanisms and nondeterminism. Proc. Ninth ACM Symp. Theory Comput., pp. 306–311. Boulder, Colorado 1977
Hogger, C.J.: Introduction to logic programming. London: Academic Press 1984
Horowitz, E.: Fundamentals of programming languages. Berlin Heidelberg New York: Springer 1983
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
Quine, W.V.O.: Mathematical logic. New York: Norton 1940
Quine, W.V.O.: Reference and modality. In: From a logical point of view, pp. 139–159. Cambridge, Mass.: Harvard University Press 1953
Quine, W.V.O.: Word and object. Cambridge, Mass: MIT Press 1960
Søndergaard, H., Sestoft, P.: Non-determinism in functional languages. Comput. J. (to appear)
Søndergaard, H., Sestoft, P.: Referential transparency and allied notions. University of Copenhagen, Denmark, DIKU Research Report 88/7, 1988
Stoy, J.E.: Denotational semantics. Cambridge, Mass.: MIT Press 1977
Strachey, C.: Fundamental concepts in programming languages. Int. Summer School in Computer Programming, Copenhagen, Denmark 1967 (unpublished)
Waite, W.M., Goos, G.: Compiler construction. Berlin Heidelberg New York: Springer 1984
Author information
Authors and Affiliations
Rights 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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00277387