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
