Jump to content

MIT/GNU Scheme

From Wikipedia, the free encyclopedia
MIT/GNU Scheme
The MIT/GNU Scheme logo highlights function recursion.
ParadigmsMulti-paradigm: functional, imperative, meta
FamilyLisp
Designed byChris Hanson,
Guillermo J. Rozas,
Taylor R. Campbell,
Stephen Adams,
Matt Birkholz,
Arthur A. Gleckler,
Joe Marshall,
Brian A. LaMacchia,
Mark Friedman,
Henry M. Wu
DeveloperMIT
First appeared1979; 45 years ago (1979)[1]
Stable release
12.1 / 7 January 2023; 21 months ago (2023-01-07)[2]
Typing disciplineDynamic, latent, strong
ScopeLexical
Platformx86: IA-32, x86-64
OSCross-platform: Linux, NetBSD, macOS
LicenseGPL
Websitewww.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]

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

[edit]

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

[edit]

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

Exit Message Translation/Meaning
"Moriturus te saluto." "I who am 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]

References

[edit]
  1. ^ "Oldest Scheme Implementations". 3 Apr 2022.
  2. ^ Hanson, Chris (20 October 2024). "[MIT-Scheme-announce] Stable release 12.1". Retrieved 20 October 2024.
  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.
[edit]