MIT/GNU Scheme

Last updated
MIT/GNU Scheme
MIT GNU Scheme Logo.svg
The MIT/GNU Scheme logo highlights function recursion.
Paradigms Multi-paradigm: functional, imperative, meta
Family Lisp
Designed by Chris Hanson,
Guillermo J. Rozas,
Taylor R. Campbell,
Stephen Adams,
Matt Birkholz,
Arthur A. Gleckler,
Joe Marshall,
Brian A. LaMacchia,
Mark Friedman,
Henry M. Wu
Developer MIT
First appeared1979;44 years ago (1979) [1]
Stable release
11.2 / 7 March 2021;2 years ago (2021-03-07) [2]
Typing discipline Dynamic, latent, strong
Scope Lexical
Platform x86: IA-32, x86-64
OS Cross-platform: Linux, NetBSD, macOS
License GPL
Website www.gnu.org/software/mit-scheme
Influenced by
Lisp, Scheme

MIT/GNU Scheme is a programming language, a dialect and implementation of the language Scheme, which is a dialect of Lisp. It can produce native binary files for the x86 (IA-32, x86-64) processor architecture. It supports the R7RS-small standard. [3] It is free and open-source software released under v2 or later of the GNU General Public License (GPL). [4] It was first released by Guy Lewis Steele Jr. and Gerald Jay Sussman at the Massachusetts Institute of Technology in 1986, [5] as free software even before the Free Software Foundation, GNU, and the GPL existed. [6] It is now part of the GNU Project. [7]

Contents

It features a rich runtime software library, a powerful source code level debugger, a native code compiler and a built-in Emacs-like editor named Edwin.

The books Structure and Interpretation of Computer Programs and Structure and Interpretation of Classical Mechanics include software that can be run on MIT/GNU Scheme.

Edwin

Edwin is a built-in Emacs-like editor that comes with MIT/GNU Scheme. Edwin normally displays the *scheme* data buffer, the mode line, and the mini-buffer when it starts. As in Emacs, the mode line gives information like the name of the buffer above it and whether that buffer is read-only, modified, or unmodified.

Latin Phrases

When the user exits the interpreter, an exit message is printed. Possible messages include the following. [8]

Exit MessageTranslation/Meaning
"Moriturus te salutat.""We who are about to die salute you."
"Happy happy joy joy!"Title of anthem song for The Ren and Stimpy Show
"Ceterum censeo Cathaginem esse delendam." "However, I think that Carthage should be destroyed."
"..#]^@^@^@ NO CARRIER"Common error message of dial-up modems
"Fortitudine vincimus.""By endurance, we conquer."
"Post proelium, praemium.""After the battle, the reward."
"Pulvis et umbra sumus.""We are dust and shadow."

Quote from developer on Savannah (Gnu's forum site):

"Originally, there was just one Latin message: moriturus te saluto: "I who am about to die salute you."  It was added by Guillermo Rozas in reference to the phrase morituri te saltamus, "we who are about to die salute you," shouted to the Roman emperor by gladiators before they began to fight in an arena (Wikipedia).  The idea is that the Scheme process, singular, salutes the user before dying.  Much later, there was debate over the correctness of the conversion from third person to first person: bug report.  We changed the verb ending, but I'm still not sure whether that was necessary." [9]

Related Research Articles

<span class="mw-page-title-main">Emacs Lisp</span> Dialect of Lisp used as an Emacs scripting language

Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs. It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter. Emacs Lisp is also termed Elisp, although there are also older, unrelated Lisp dialects with that name.

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

<span class="mw-page-title-main">GNU Debugger</span> Source-level debugger

The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust, and partially others.

<span class="mw-page-title-main">GNU nano</span> Text editor for Unix-like computing systems

GNU nano is a text editor for Unix-like computing systems or operating environments using a command line interface. It emulates the Pico text editor, part of the Pine email client, and also provides additional functionality. Unlike Pico, nano is licensed under the GNU General Public License (GPL). Released as free software by Chris Allegretta in 1999, nano became part of the GNU Project in 2001. The logo resembles the lowercase form of the Greek letter Eta (η).

<span class="mw-page-title-main">XEmacs</span>

XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

<span class="mw-page-title-main">DJGPP</span> Implementation of the GNU toolchain for DOS

DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), and mostly GNU utilities such as Bash, find, tar, ls, GAWK, sed, and ld to DOS Protected Mode Interface (DPMI). Supported languages include C, C++, Objective-C/C++, Ada, Fortran, and Pascal.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

GNU Readline is a software library that provides in-line editing and history capabilities for interactive programs with a command-line interface, such as Bash. It is currently maintained by Chet Ramey as part of the GNU Project.

<span class="mw-page-title-main">Richard Stallman</span> American free software activist and GNU Project founder (born 1953)

Richard Matthew Stallman, also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to use, study, distribute, and modify that software. Software that ensures these freedoms is termed free software. Stallman launched the GNU Project, founded the Free Software Foundation (FSF) in October 1985, developed the GNU Compiler Collection and GNU Emacs, and wrote all versions of the GNU General Public License.

<span class="mw-page-title-main">SLIME</span>

SLIME, the Superior Lisp Interaction Mode for Emacs, is an Emacs mode for developing Common Lisp applications. SLIME originates in an Emacs mode called SLIM written by Eric Marsden. It is developed as an open-source public domain software project by Luke Gorrie and Helmut Eller. Over 100 Lisp developers have contributed code to SLIME since the project was started in 2003. SLIME uses a backend called Swank that is loaded into Common Lisp.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

rcirc IRC client

rcirc is an Internet Relay Chat (IRC) client written in Emacs Lisp. It is one of two IRC clients included in GNU Emacs since release 22.1, alongside ERC.

<span class="mw-page-title-main">Free-software license</span> License allowing software modification and redistribution

A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder of a piece of software can remove these restrictions by accompanying the software with a software license which grants the recipient these rights. Software using such a license is free software as conferred by the copyright holder. Free-software licenses are applied to software in source code and also binary object-code form, as the copyright law recognizes both forms.

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on its direct descendant, GNU Emacs, is ongoing; its latest version is 29.1, released July 2023.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use and was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. These GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">Org-mode</span> Open source mode for GNU Emacs

Org Mode is a mode for document editing, formatting, and organizing within the free software text editor GNU Emacs and its derivatives, designed for notes, planning, and authoring. The name is used to encompass plain text files that include simple marks to indicate levels of a hierarchy, and an editor with functions that can read the markup and manipulate hierarchy elements.

<span class="mw-page-title-main">Spacemacs</span> Free software

Spacemacs is a configuration framework for GNU Emacs. It can take advantage of all of GNU Emacs' features, including both graphical and command-line user interfaces, and being executable under X Window System and within a Unix shell terminal. It is free and open-source software (FOSS) released under the GPL-3.0-or-later license.

References

  1. "Oldest Scheme Implementations". 3 Apr 2022.
  2. Campbell, Taylor R.; Hanson, Chris; Gleckler, Arthur A. (24 July 2021). "Index: mit-scheme.git". MIT/GNU Scheme. GNU Savannah. Retrieved 24 July 2021.
  3. "MIT/GNU Scheme release notes". 3 Oct 2021. Retrieved 3 Oct 2021.
  4. "MIT/GNU Scheme - GNU Project - Free Software Foundation". www.gnu.org. Retrieved 2023-03-02.
  5. Steele, Guy (2006). "History of Scheme" (PDF slideshow). Sun Microsystems Laboratories.
  6. Hanson, Chris (28 October 2018). "MIT/GNU Scheme". GNU Operating System. Free Software Foundation. Retrieved 11 April 2019.
  7. "Free Software Directory". GNU Operating System. Free Software Foundation. Retrieved 11 April 2019.}
  8. "Source code: mit-scheme.git". git.savannah.gnu.org. Retrieved 2023-02-28.
  9. Gleckler, Arthur A. (16 February 2023). "Re: Latin Phrases on exit". lists.gnu.org/archive.