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

Re: Why would anyone want opacity?

   Date: Mon, 06 May 1996 15:12:40 +0000
   From: William D Clinger <will@ccs.neu.edu>

   As I understood Jaffer's proposal, the existing R4RS syntax
   for LAMBDA creates opaque procedures and the new ("advertised")
   syntax created (advertised?) procedures.

   With this interface, Jaffer's syntax could be used to declare
   that debugging is more important than optimization for a specific
   lambda expression.

   >  - syntax: lambda <formals> <documentation> <body>
   >      *Syntax:*  <Formals> should be a formal arguments list as
   >      described below, and <body> should be a sequence of one or more
   >      expressions.  <Documentation> is a string.

   This makes <documentation> come before rather than after any
   internal definitions.  Is that the intended syntax?

I overlooked that aspect.

   My personal preference would be to have the documentation string
   come after the internal definitions.  Then the advertised syntax
   would be a special case of the current syntax, and we wouldn't
   have to extend the language.

Good idea; That is a better way to do it.

   > This information is not available for
   >      opaque procedures.  However, opaque procedures can be optimized
   >      more aggressivly by compilers.

   I would prefer "may not be" and "may be" instead of "is not"
   and "can be".

The second sentence as "However, opaque procedures may be optimized
more aggressivly by compilers." is fine with me.

About opaque information, "is not" was to broad.  Although it is not
important to withhold *all* information about opaque procedures, My
preference would be that information which compromises opaque data
structures be withheld.

This constraint needs more refinement.  Would specifying that
`procedure-environment' not be available for opaque procedures be the
least restrictive?