Acta Informatica

, Volume 27, Issue 6, pp 505-517

First online:

Referential transparency, definiteness and unfoldability

  • Harald SøndergaardAffiliated withDepartment of Computer Science, University of Melbourne
  • , Peter SestoftAffiliated withDIKU, University of Copenhagen

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


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.