MIT Scheme is an implementation of the Scheme programming language developed by MIT for use in their programming classes and other projects. The groundwork for the creation of the Scheme language was laid out in 1975, and MIT Scheme came about in 1981. Scheme is a dialect of the language LISP. MIT Scheme comes with all of the tools necessary for development. It comes with an interpreter, compiler, debugger, and several useful libraries. All of this is tied together and made more user-friendly with an editor called Edwin, which is based on Emacs.

As a version of Scheme, MIT Scheme inherits all of Scheme's characteristics. Some of the unique characteristics of Scheme are:

  • Parenthesis syntax: All Scheme expressions are written completely within parentheses. Example: (define x 5)
  • Prefix notation: Within a Scheme expression, the operator comes first, then the arguments. Example: (+ 5 5) instead of 5 + 5.
  • Weak typing: Scheme associates types with the value bound to a variable, not the variable itself. This is also known as latent typing or dynamic typing.
  • Static scope: Whenever a procedure is called in Scheme, a new environment is created and the arguments passed in receive new bindings.
  • Tail recursion. Scheme's natural defiency in the area of loops is countered by its proper tail recursion. Tail-recursive algorithms can be written in Scheme and will be run correctly.

MIT Scheme is still widely used in the MIT community. Introductory programming classes, such as 6.001, as well as artificial intelligence classes like 6.034 make exclusive use of MIT Scheme.

The web page for MIT Scheme is http://www.swiss.ai.mit.edu/projects/scheme/. MIT Scheme is available for a number of operating systems, including Microsoft Windows and GNU/Linux.