Scheme is a statically scoped and
properly tail-recursive dialect of the Lisp programming language. It was
designed to have an exceptionally clear and simple semantics and few
different ways to form expressions. A wide variety of programming paradigms,
including imperative, functional, and message passing styles, find
convenient expression in 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. It 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 previously known sequential control structures can be synthesized. More
recently, building upon the design of generic arithmetic in Common Lisp,
Scheme introduced the concept of exact and inexact numbers. Scheme is also
the first programming language to support hygienic macros, which permit the
syntax of a block-structured language to be extended reliably.
How We Use It
It is used for Compiler course.
Online help is available about PLT scheme on the following link
You may download
it free from: http://download.plt-scheme.org/drscheme/.