Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Why is it called "referential transparency"?

1 view
Skip to first unread message

EL Henry

unread,
Apr 25, 2004, 5:38:23 PM4/25/04
to
Hello ---

Newbie question: why is the term "referential transparency" used?
What are the "inner workings" that justify this terminology, in terms
of what it is referencing, etc?
I mean, I understand the concept, but I am just unable to give a
clear explanation as to "why".

Thank you,

Henry

Peter G. Hancock

unread,
Apr 25, 2004, 11:24:35 PM4/25/04
to

>>>>> EL Henry wrote (on Sun, 25 Apr 2004 at 22:38):

> Newbie question: why is the term "referential transparency" used?

I'm not 100% sure when the term was first used, but I think it was
first used in philosophy, in connection with quotation, reported
speech, and "propositional attitudes", eg. belief, doubt, etc. I
think it may have been Bertrand Russell who first used the term, but
please google, I could be completely wrong. I'm pretty sure that the
concept (if not the terminology) is centuries old.

A (propositional) context in which a term occurred was said to be
referentially opaque if when you substitute a term with the same
reference for that occurrence, the truth value of the proposition can
change. Think of something like "Fred doubts that the Morning Star
is the Evening Star". (MS and ES both names of the planet Venus.)

So roughly speaking, referential transparency means you can
freely substitute terms with the same reference.

I don't know who introduced the term into computer science.
Someone who knew some philosophy, no doubt.

Peter Hancock

Chung-chieh Shan

unread,
Apr 26, 2004, 3:00:23 AM4/26/04
to
Peter G. Hancock <han...@spamcop.net> wrote in article <oqekqbo...@premise.demon.co.uk> in comp.lang.functional:

> I'm not 100% sure when the term was first used, but I think it was
> first used in philosophy, in connection with quotation, reported
> speech, and "propositional attitudes", eg. belief, doubt, etc. I
> think it may have been Bertrand Russell who first used the term, but
> please google, I could be completely wrong. I'm pretty sure that the
> concept (if not the terminology) is centuries old.

I'd also like to know who/what to cite for the terms "referential
transparency" and "referential opacity", especially if it is not:

Quine, Willard Van Orman. 1960. Word and object. Cambridge: MIT Press.

--
Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig
Be it declared and enacted by this present Parliament / That the People
of England / are / a Commonwealth and free State / without any King or
House of Lords. -- An Act declaring England to be a Commonwealth
1649-05-19 | 355 years | 2004-05-19 http://tinyurl.com/2dqnh

Peter G. Hancock

unread,
Apr 26, 2004, 4:56:34 AM4/26/04
to

>>>>> Chung-chieh Shan wrote (on Mon, 26 Apr 2004 at 08:00):

> I'd also like to know who/what to cite for the terms "referential
> transparency" and "referential opacity", especially if it is not:

> Quine, Willard Van Orman. 1960. Word and object. Cambridge: MIT Press.

I found: http://sources.redhat.com/ml/guile/1998-08/msg00401.html
which has the quote:

"I was wrong in believing that the terminology is due to Quine. He
explicitly attributes it to Whitehead and Russell, "Principia
Mathematica" 2d ed, vol 1 p 665 (1925)."

BTW, somewhere else I saw that Quine attributes the concept to Frege.
But I (unreliably) recall a long discussion by Geach somewhere which
gave me the impression the concept was well-known in medieval
philosophy.

Peter Hancock

Peter Sestoft

unread,
Apr 26, 2004, 11:09:45 AM4/26/04
to
Chung-chieh Shan <ccs...@post.harvard.edu> writes:

> I'd also like to know who/what to cite for the terms "referential
> transparency" and "referential opacity", especially if it is not:
>
> Quine, Willard Van Orman. 1960. Word and object. Cambridge: MIT Press.

The paper

H. Søndergaard and P. Sestoft. Referential transparency, definiteness
and unfoldability. Acta Informatica, 27:505-517, 1990.
(Reviewed in Computing Reviews 32(3):144-145, 1991, entry 9103-0154).

discussed referential transparency, the origin of the term, and some
related concepts.

Unfortunately I don't have the paper in electronic form any longer.

Peter
--
Department of Natural Sciences http://www.dina.kvl.dk/~sestoft/
Royal Veterinary and Agricultural University * Tel +45 3528 2334
Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark * Fax +45 3528 2350

bogus address

unread,
Apr 26, 2004, 9:04:58 PM4/26/04
to

It's a not-very-accurate application of a term coined by W.V.O. Quine
in his paper "Reference and Modality", from his collection _From a
Logical Point of View_ (though Quine attributed the guts of the idea
to Russell in _Principia Mathematica_ volume 1 appendix C).

Your bafflement is entirely justified. Quine's concept has bugger-all
resemblance to the pirated version found in the functional programming
literature. (I think David Turner was responsible for that).

========> Email to "j-c" at this site; email to "bogus" will bounce <========
Jack Campin: 11 Third Street, Newtongrange, Midlothian EH22 4PU; 0131 6604760
<http://www.purr.demon.co.uk/purrhome.html> food intolerance data & recipes,
Mac logic fonts, Scots traditional music files and CD-ROMs of Scottish music.

Peter G. Hancock

unread,
Apr 27, 2004, 5:23:34 AM4/27/04
to

>>>>> EL Henry wrote (on Sun, 25 Apr 2004 at 22:38):

> Newbie question: why is the term "referential transparency" used?
> What are the "inner workings" that justify this terminology, in terms
> of what it is referencing, etc?

There's a lot of scope for argument about what the "reference" of an
expression might be in functional programming, but one answer which
might secure some agreement is that the reference of an expression is
the value to which it reduces (supposing that it does reduce to
something).

Now one might distinguish between those contexts C[...] (expressions
with a hole) where the value of C[e] depends only on the value of e,
and those where it depends on something more. For example, some
people think that one should not evaluate inside a lambda-expression
(even if what one evaluates is closed); under such a regime,
lambda-expressions are already in normal form (even if they contain
occurrences of closed expressions that can be evaluated). Those
people might summarise their position by saying that a context
\x->C[...] is not referentially transparent.

When the notion of referential transparency/opacity was first
introduced, (I think that) the only contexts C[...] one worried about
were propositional contexts, where the reference of C[e] (a
proposition) was supposed to be a truth value. So one talked about
substitutions of expressions with equal reference (denotation) that
could be made "salva veritate" (preserving truth value).
Contexts that are not referentially transparent might be said to depend
on more than the reference of their subexpressions, and one might ask
what that might be. One answer might be that they depend on the
meaning or "sense" of the expression, where the "sense" of the expression
is the means by which the reference is determined.

I hope that's of some help. It's a hugely subtle topic.

Someone somewhere suggested that it was Landin and/or Strachey who
first introduced the (philosophical) terminology into computer
science. Jack Campin suggests David Turner. Who knows.

Peter Hancock

EL Henry

unread,
Apr 27, 2004, 6:00:04 PM4/27/04
to
han...@spamcop.net (Peter G. Hancock) wrote in message news:<oqzn8xy...@premise.demon.co.uk>...

> >>>>> EL Henry wrote (on Sun, 25 Apr 2004 at 22:38):
>
> > Newbie question: why is the term "referential transparency" used?
> > What are the "inner workings" that justify this terminology, in terms
> > of what it is referencing, etc?
>
> There's a lot of scope for argument about what the "reference" of an
>
> I hope that's of some help. It's a hugely subtle topic.
>
> Someone somewhere suggested that it was Landin and/or Strachey who
> first introduced the (philosophical) terminology into computer
> science. Jack Campin suggests David Turner. Who knows.
>
> Peter Hancock

Yes, very interesting that was, indeed. Thank you and to all other
for the references (the ones that we could see) :-)

Henry

|-|erc

unread,
Apr 29, 2004, 7:33:15 AM4/29/04
to
"EL Henry" <synth...@uol.com.br> wrote in

> > >>>>> EL Henry wrote (on Sun, 25 Apr 2004 at 22:38):
> >
> > > Newbie question: why is the term "referential transparency" used?
> > > What are the "inner workings" that justify this terminology, in terms
> > > of what it is referencing, etc?
> >
> > There's a lot of scope for argument about what the "reference" of an
> >
> > I hope that's of some help. It's a hugely subtle topic.
> >
> > Someone somewhere suggested that it was Landin and/or Strachey who
> > first introduced the (philosophical) terminology into computer
> > science. Jack Campin suggests David Turner. Who knows.
> >
> > Peter Hancock
>
> Yes, very interesting that was, indeed. Thank you and to all other
> for the references (the ones that we could see) :-)
>

Transparency pops up in distributed relational database jargon, not sure if
referential is one, essentially meaning that the operations of the database are
indistinguishable from a single server. i.e. the extra protocols are transparent,
you don't see them.

Herc

Peter Sestoft

unread,
May 3, 2004, 8:17:13 AM5/3/04
to
I wrote:

> The paper
>
> H. Søndergaard and P. Sestoft. Referential transparency, definiteness
> and unfoldability. Acta Informatica, 27:505-517, 1990.
> (Reviewed in Computing Reviews 32(3):144-145, 1991, entry 9103-0154).
>
> discussed referential transparency, the origin of the term, and some
> related concepts.
>
> Unfortunately I don't have the paper in electronic form any longer.

Thanks to John Atwood at HP I now have a scanned copy on my homepage:

http://www.dina.kvl.dk/~sestoft/papers/SondergaardSestoft1990.pdf

Joachim Durchholz

unread,
May 5, 2004, 11:47:22 AM5/5/04
to
|-|erc wrote:
> Transparency pops up in distributed relational database jargon, not
> sure if referential is one, essentially meaning that the operations
> of the database are indistinguishable from a single server. i.e. the
> extra protocols are transparent, you don't see them.

That's network transparency (not the same as referential transparency
but useful in itself).

Jo

0 new messages