[cap-talk] Algol-68 and ML terminology (was: Wikipedia: Object-capability model - reference vs. capability? KISS)

Mark S. Miller markm at cs.jhu.edu
Thu Jan 18 12:34:21 CST 2007


Jonathan S. Shapiro wrote:
> MarkM, Ping: does the use of the term "reference" in the page correspond
> precisely to the use of this term in ML and/or Haskell? It would be very
> nice if it did.


I thought I knew that the answer to this is "no", but earlier


David Hopwood wrote:
 >>> I don't find these other types of references confusing (perhaps because
 >>> I have a programming language background, and the use of "reference"
 >>> here exactly corresponds to the OO language usage).

Charlie wrote:
 >> I'm surprised by this, but I'll defer to the language folks. Are
 >> there languages other than Algol68

David Hopwood wrote:
 > Algol68 terminology uses the term "reference" to mean a cell, although
 > Algol68's semantics an be considered as you describe above.
 >
 >> that use references to integers this way?
 >
 > Yes, plenty: Smalltalk, the ML family, all Lisps, E, Haskell, etc.
 > Once you are used to such languages, you tend to view the semantics
 > of all languages in a similar way, even if the mapping is sometimes a
 > little forced.


David, your statements above regarding Algol68 and ML surprise me. I thought 
in both, "reference" means what "Slot" means in E, "cell" in Oz, or "location" 
in the Scheme semantics -- a means for enabling mutability. The first footnote 
in my thesis states:

# Those familiar with ML or Algol68 may find our use of the term "reference"
# confusing. By "reference" we mean "object reference" or "protected pointer,"
# i.e., the arrows that one draws when diagramming a data structure to show
# which objects "point at" which other objects. Our "references" have nothing
# to do with enabling mutability.

Am I confused about Algol-68 and ML?


-- 
Text by me above is hereby placed in the public domain

     Cheers,
     --MarkM


More information about the cap-talk mailing list