Content deleted Content added
mNo edit summary |
Citation bot (talk | contribs) Alter: pages. Formatted dashes. | Use this bot. Report bugs. | #UCB_CommandLine |
||
Line 2:
{{About|referential transparency in programming language theory|its use in linguistics and philosophy|Opaque context}}
In [[analytic philosophy]] and [[computer science]], '''referential transparency''' and '''referential opacity''' are properties of linguistic constructions,<ref>A linguistic construction (also called mode of containment, context, or operator) is an expression with holes.</ref> and by extension of languages. A linguistic construction is called ''referentially transparent'' when for any expression built from it, [[Rewriting|replacing]] a subexpression with another one that [[Denotation|denotes]] the same value<ref>Here a value is the denotation (also called meaning, object, or referent) of an expression, not the [[Expression (computer science)|result]] of the evaluation process.</ref> does not change the value of the expression.<ref name="quine1960">{{cite book |last=Quine |first=Willard Van Orman |author-link=Willard Van Orman Quine |date=1960 |title=Word and Object |edition=1st |url=https://archive.org/details/in.ernet.dli.2015.529086 |___location=Cambridge, Massachusetts |publisher=MIT Press |page=144 |isbn=978-0-262-17001-7}}</ref><ref name="strachey1967">{{cite
Referential transparency depends on the values associated to expressions, that is on the semantics of the language. So, both [[declarative language]]s and [[imperative language]]s can be referentially transparent or referentially opaque, according to the semantics they are given.
Line 33:
== Formal definitions ==
There are three fundamental properties concerning substitutivity in formal languages: referential transparency, definiteness, and unfoldability.<ref name="sondergaard1990">{{cite journal |last1=Søndergaard |first1=Harald |last2=Sestoft |first2=Peter |date=1990 |title=Referential Transparency, Definiteness and Unfoldability |url=http://www.itu.dk/people/sestoft/papers/SondergaardSestoft1990.pdf |journal=Acta Informatica |volume=27 |issue=6 |pages=
Let’s denote syntactic equivalence with ≡ and semantic equivalence with =.
|