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

Re: good books on scheme?



   Date: Wed, 7 Feb 2001 08:31:16 -0600 (CST)
   From: Matthias Felleisen <matthias@cs.rice.edu>

   ...
      Instead, I think he meant that since the implementation technique of
      "closure" isn't what was used to keep the procedures "closed," the
      language designers were forced to resort to another, more primitive,
      technique, namely forbidding any nesting of procedures.  

   Now, here I would say Max gives more credit to the designers of C than I
   could imagine, ...

Well, imagination isn't necessary, we have testimony.  Actually, there
was an intermediate step, between closures and forbidding nesting,
which was to allow nesting but forbid reference to non-static names in
surrounding scopes.  Writing in the proceedings of the second
conference on the history of programming languages (HOPL II), Dennis
Ritchie wrote about how he designed C by evolution from BCPL, by way
of B:

 "BCPL, B and C differ syntactically in many details, but broadly they
 are similar.  Programs consist of a sequence of global definitions
 and function (procedure) declarations.  Procedures can be nested in
 BCPL, but may not refer to non-static objects defined in containing
 procedures.  B and C avoid this restriction by imposing a more severe
 one: no nested procedures at all."

-max