Talk:History of the Scheme programming language: Difference between revisions

Content deleted Content added
Material deleted from "Carl Hewitt, the Actor model, and the birth of Scheme"
Line 6:
: Thank you very much for this great article!
: Scheme history is particularly fascinating because it served as a vehicle for introducing a plethora of concepts ([[lambda calculus]] and [[Formal semantics of programming languages|formal semantics]], [[closure (computer science)|closure]]s, [[continuation]]s and [[continuation-passing style|CPS]], ...) to a wide audience, bridging the theoretic and pragmatic worlds; it's also one of the finest examples of a [[hacker (programmer subculture)|hacker culture]] product in origins. <span style="white-space:nowrap">—[[User:Piet Delport|Piet Delport]] <small>([[User talk:Piet Delport|talk]]) 2009-10-20 05:56</small></span>
 
 
==Material deleted from "Carl Hewitt, the Actor model, and the birth of Scheme"==
 
Some of the material below was deleted from the article.[[Special:Contributions/171.66.33.22|171.66.33.22]] ([[User talk:171.66.33.22|talk]]) 23:10, 26 October 2009 (UTC)
 
In 1970, Sussman and Hewitt had worked together along with others on [[MDL (programming language)|Muddle (later MDL)]], an extended Lisp which formed a component of Hewitt's ambitious [[Planner (programming language)|Planner]] project, and in 1971 Sussman, [[Drew McDermott]], and [[Eugene Charniak]] had developed a system called Micro-Planner which was a partial and somewhat unsatisfactory implementation of Planner. Drew McDermott, and Sussman in 1972 developed the Lisp-based language Conniver based on "hairy control structure" that could implement non-chronological backtracking that was more general an the chronological backtracking in Planner. Hewitt and others were skeptical of hairy control structure. Pat Hayes remarked: "''Their [Sussman and McDermott] solution, to give the user access to the implementation primitives of Planner, is however, something of a retrograde step (what are Conniver's semantics?), although pragmatically useful and important in the short term.''"<ref>Pat Hayes Some Problems and Non-Problems in Representation Theory AISB. Sussex. July, 1974.</ref>
 
In December 1972, Actors were invented as the universal primitives of computation.<ref> {{cite paper|author=Carl Hewitt|coauthors=Peter Bishop and Richard Steiger|title=A Universal Modular Actor Formalism for Artificial Intelligence|publisher=IJCAI|year=1973}}</ref> Hewitt and Sussman had previously taken Peter Landin's course on the lambda calculus. Steele, then a graduate student at MIT, had been following these developments, and he and Sussman decided to implement a version of the Actor model in their own "tiny Lisp" developed on top of [[MacLisp]], in order to understand the model better. Using this basis they then began to develop a Lisp system for implementing Actors named Schemer, eventually changing it to Scheme to fit the six-character limit on the ITS file system on their DEC PDP-10. They soon concluded that lambda calculus closures and the Actors were essentially identical concepts.<ref>Gerald Jay Sussman and Guy Lewis Steele, Jr.. "Scheme: An Interpreter for Extended Lambda Calculus". MIT AI Lab. AI Lab Memo AIM-349. December 1975.</ref> Hewitt disagrees: "[Sussman and Steele 1975] mistakenly concluded “we discovered that the 'Actors' and the lambda expressions were identical in implementation.” The actual situation is that the lambda calculus is capable of expressing some kinds of sequential and parallel control structures but, in general, not the concurrency expressed in the Actor model. On the other hand, the Actor model is capable of expressing everything in the lambda calculus and more."<ref>[http://arxiv.org/abs/0907.3330 ActorScript(TM): Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing]</ref>
 
Scheme continued the "hairy control structure" of Conniver by incorporating re-invocable continuations. Hewitt responded: "''One of the most important results that has emerged from the development of Actor semantics has been the further development of techniques to semantically analyze or synthesize control structures as patterns of passing messages. '''As a result of this work, we have found that we can do without the paraphernalia of "hairy control structure."''' '' "<ref>[http://dspace.mit.edu/ ''Viewing Control Structures as Patterns of Passing Messages'' AI Memo 410. Dec. 1976] (emphasis in original)</ref>
 
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">{{cite journal
| author = [[Gerald Jay Sussman]] and [[Guy L. Steele, Jr.]]
| month = December
| year = 1998
| url = http://www.brics.dk/~hosc/local/HOSC-11-4-pp399-404.pdf
| format = PDF
| title = The First Report on Scheme Revisited
| journal = Higher-Order and Symbolic Computation
| volume = 11
| issue = 4
| pages = 399–404
| doi = 10.1023/A:1010079421970
| issn = 1388-3690
| accessdate = 2006-06-19
}}</ref>
 
{{reflist|2}}