Content deleted Content added
Citation bot (talk | contribs) Add: hdl, doi, pages, issue, volume, s2cid, authors 1-1. Removed parameters. Formatted dashes. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Abductive | #UCB_toolbar |
m Open access bot: hdl added to citation with #oabot. |
||
Line 46:
}}</ref>
PLASMA's use of lexical scope was similar to the [[lambda calculus]]. Sussman and Steele decided to try to model Actors in the lambda calculus. They called their modeling system Schemer, eventually changing it to Scheme to fit the six-character limit on the [[Incompatible Timesharing System|ITS]] file system on their DEC [[PDP-10]]. They soon concluded Actors were essentially closures that never return but instead invoke a [[continuation]], and thus they decided that the closure and the Actor were, for the purposes of their investigation, essentially identical concepts. They eliminated what they regarded as redundant code and, at that point, discovered that they had written a very small and capable dialect of Lisp. Hewitt remained critical of the "hairy control structure" in Scheme<ref>{{cite journal |last=Hewitt |first=Carl |author-link=Carl Hewitt |date=December 1976 |title=Viewing Control Structures as Patterns of Passing Messages |journal=AI Memo 410 }}</ref><ref>{{cite journal |last=Hewitt |first=Carl |author-link=Carl Hewitt |date=June 1977 |title=Viewing Control Structures as Patterns of Passing Messages |journal=Journal of Artificial Intelligence |volume=8 |issue=3 |pages=323–364 |doi=10.1016/0004-3702(77)90033-9 |hdl=1721.1/6272 |hdl-access=free }}</ref> and considered primitives (e.g., <code>START!PROCESS</code>, <code>STOP!PROCESS</code>, and <code>EVALUATE!UNINTERRUPTIBLY</code>) used in the Scheme implementation to be a backward step.
25 years later, in 1998, Sussman and Steele reflected that the minimalism of Scheme was not a conscious design goal, but rather the unintended outcome of the design process. "We were actually trying to build something complicated and discovered, serendipitously, that we had accidentally designed something that met all our goals but was much simpler than we had intended... we realized that the lambda calculus—a small, simple formalism—could serve as the core of a powerful and expressive programming language."<ref name="revisited"/>
|