[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A (Low-Level) Opaque Object Proposal for R5RS

   From ziggy@martigny.ai.mit.edu Mon Apr 29 15:55:13 1996
   From: "Michael R. Blair" <ziggy@martigny.ai.mit.edu>
   Subject: Re: A (Low-Level) Opaque Object Proposal for R5RS
   To: jaffer@ai.mit.edu
   >  I [propose] the following four procedures be standardized for Scheme and
   >  their names be added to the list of reserved identifiers:
   >  --------------------------------------------------------------------
   >  [1].     (MAKE-OPAQUE-TYPE                              . <passkey>)
   >  [2].     (     OPAQUE-UP   <opaque-type>       <object> . <passkey>)
   >  [3].     (     OPAQUE-DOWN              <opaque-object> . <passkey>)
   >  [4].     (     OPAQUE-TYPE                     <object>            )
   >  --------------------------------------------------------------------
   > A few minutes with a Thesaurus finds some descriptive transitive verbs
   > which might better serve users' memories than OPAQUE-UP and
   >  OPAQUE-UP: obscure hide darken obfuscate perplex cloud baffle perplex
   >  scramble jumble
   >  OPAQUE-DOWN: illumine clarify realize fathom illuminate elucidate
   >  explicate
   > I find particularly appealing that a computer language might have the
   > operators: OBFUSCATE and ELUCIDATE.
   The (admittedly bland) names UP and DOWN were chosen based on my (limited)
   experience with Clu, one of the proposals for Ada that didn't make it into
   the final Ada standard.
   In Clu, the thing that converts an abstract type into its underlying
   concrete representational (`rep') type is called DOWN, and that which
   converts rep types into abstract types is called UP.  I believe these are
   intended to suggest moving UP and DOWN across layers of abstraction
   barriers and levels of abstractness.  I guess I should have explained that.

The trouble with UP and DOWN is that they are already a layer of metaphor
removed from what you're really trying to say.  Appealing as OBFUSCATE and
ELUCIDATE may be, their meanings are slightly off the mark.  An opaque object
is presumably trying to make access to its innards impossible, not just

Other languages have used such (admittedly mundane) verb pairs as
SEAL and UNSEAL or HIDE and REVEAL.  Consider also VEIL and UNVEIL,