Newsgroups: comp.lang.misc Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!barmar From: barmar@think.com (Barry Margolin) Subject: Re: Who or What is Scheme? Message-ID: <1991Apr17.222616.20871@Think.COM> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA References: <32012@usc> Date: Wed, 17 Apr 91 22:26:16 GMT In article <32012@usc> ajayshah@alhena.usc.edu (Ajay Shah) writes: >I came across Scheme recently. Does someone have a quick summary on >where it fits into the Universe? Scheme is a dialect of Lisp that was designed to have very pure semantics and support programming languages research and education. It was originally developed by Guy Steele and Gerald Sussman at MIT in the mid-70's. Here are some relevant excerpts from the introduction to the "Revised**3 Report on the Algorithmic Language Scheme", which defines the language and I believe is available from the MIT Artificial Intelligence Laboratory. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today. Scheme was one of the first programming languages to incorporate first class procedures as in the lambda calculus, thereby proving the usefulness of static scope rules and block structure in a dynamically typed language. Scheme was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols, to use a single lexical environment for all variables, and to evaluate the operator position of a procedure call in the same way as an operand position. By relying entirely on procedure calls to express iteration, Scheme emphasized the fact that tail-recursive procedure calls are essentially goto's that pass arguments. Scheme was the first widely used programming language to embrace first class escape procedures, from which all known sequential control structures can be synthesized. -- Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar