This article is rated C-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||
|
The contents of the Lambda Papers page were merged into History of the Scheme programming language on 23:06, 15 October 2009. For the contribution history and old versions of the redirected page, please see its history; for the discussion at that location, see its talk page. |
This stub article was born of my work on Scheme (programming language). As a Schemer I've been vaguely aware of much of this for some time, but as I've read that various articles on related subjects and external materials over the past few days in writing the Scheme article I've become aware that there's a lot of information scattered around but it isn't reflected anywhere on Wikipedia.
Writing computer history is fun because it's recent enough for most of the actors to still be around and commenting on their earlier work, most of them are academics who have spent their entire life publishing their thoughts and write with a reasonable degree of candor and considerable historical insight. There's bags of material and it cries out to be written about. -- TS 19:50, 15 October 2009 (UTC)
Some of the material below was deleted from the article. 171.66.33.22 ( talk) 23:10, 26 October 2009 (UTC)
(Deleted for readability; see the diff instead. — Piet Delport ( talk) 2009-10-28 10:13)
The published quotations shed considerable light on the history. How can the peoples' intent be determined 35 years after the fact? And how can how it changed with time be tracked? 171.66.86.186 ( talk) 00:48, 28 October 2009 (UTC)
It's too bad that the above history was deleted. (Maybe someone who knows how could restore it.) It had good information on the early history of Scheme particularly with respect to the following:
I wonder if there are other topics like the above that should be included. 171.66.109.31 ( talk) 23:20, 29 October 2009 (UTC)
It is important not to confuse the beginning of a controversy with how it ultimately turned out. The birth of Scheme was marked by two important controversies:
70.231.250.190 ( talk) 17:34, 3 November 2009 (UTC)
The quotation deleted from the article published in ActorScript(TM): Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing ArXiv 0907.3330 is as follows:
76.254.235.105 ( talk) 18:32, 1 November 2009 (UTC)
START!PROCESS
, STOP!PROCESS
and EVALUATE!UNINTERRUPTABLY
) had nothing to do with the actor model or its concurrency model, but were instead more or less accidental features of the original interpreter (and by the authors' own later description "flat-out wrong").START!PROCESS
, STOP!PROCESS
and EVALUATE!UNINTERRUPTABLY
primitives were part Sussman and Steele's reductionist attempt to address the message arrival order issue. It is unclear where these primitives fit into their summarizing claim at the end of their paper that “we discovered that the 'Actors' and the lambda expressions were identical in implementation.”
76.254.235.105 (
talk) 21:54, 8 November 2009 (UTC)It seems very strange. On one hand, Scheme incorporated re-invocable continuations that go beyond Actor message passing. On the other hand, Scheme did not provide for message arrival order that is part of Actor message passing. 68.170.176.166 ( talk) 22:44, 8 November 2009 (UTC)
Both of the above were part of the general controversy caused by the Sussman and Steele thesis that Actors were merely the lambda calculus in disguise. Another instance of the controversy was whether Actor customers (continuations) are lambda expression closures. Steele (1976) in the secton "Actors ≡ Closures (mod Syntax)" disagreed with Hewitt who "expressed doubt as to whether these underlying continuations can themselves be expressed as lambda expressions." However, Actor customers cannot be expressed as lambda expressions because doing so would preclude being able to enforce the Actor requirment that a customer will process at most one return value. 68.170.178.152 ( talk) 21:56, 6 December 2009 (UTC)
Hewitt's version of the history was published in ActorScriptTM: Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing arXiv:0907.3330 98.210.236.39 ( talk) 11:09, 27 February 2010 (UTC)
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. Sussman and Hewitt worked together along with others on Muddle (later MDL), an extended Lisp which formed a component of Hewitt's ambitious Planner project. Drew McDermott, and Sussman in 1972 developed the Lisp-based language Conniver, which revised the use of automatic backtracking in Planner which they thought was unproductive. Hewitt was dubious that the "hairy control structure" in Conniver was a solution to the the problems with Planner. 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?)" [1]
In November 1972, Hewitt and his students invented the Actor model of computation as a solution to the problems with Planner. [2] A partial implementation of Actors was developed called Planner-73 (later called PLASMA). 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 mechanisms for creating actors and sending messages. [3]
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 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. [4] and considered primitives (e.g., START!PROCESS, STOP!PROCESS and EVALUATE!UNINTERRUPTIBLEY) 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." [3]
On the other hand, Hewitt remained critical of the lambda calculus as a foundation for computation writing "The actual situation is that the λ-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 λ-calculus and more." He has also been critical of aspects of Scheme that derive from the lambda calculus such as reliance on continuation functions and the lack of exceptions. [5]
{{
cite journal}}
: Cite journal requires |journal=
(
help); Unknown parameter |coauthors=
ignored (|author=
suggested) (
help)
{{
cite journal}}
: Unknown parameter |month=
ignored (
help)
Who wrote the first implementations and how were they written? I presume they were written in MacLisp on a PDP-10 at MIT, but hope someone who has read the LAMBDA papers could share. -- 132.198.101.61 ( talk) 18:36, 13 August 2010 (UTC)
Hello fellow Wikipedians,
I have just modified one external link on History of the Scheme programming language. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
This message was posted before February 2018.
After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than
regular verification using the archive tool instructions below. Editors
have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the
RfC before doing mass systematic removals. This message is updated dynamically through the template {{
source check}}
(last update: 5 June 2024).
Cheers.— InternetArchiveBot ( Report bug) 10:45, 5 November 2017 (UTC)