Referential transparency, definiteness and unfoldability

Harald S�ndergaard, Peter Sestoft
1990 Acta Informatica  
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
more » ... "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.
doi:10.1007/bf00277387 fatcat:4srfzh2zrvb3ld4tm3bd4tqwje