MIT/GNU Scheme

{{Infobox programming language

| name = MIT/GNU Scheme

| logo = MIT GNU Scheme Logo.svg

| logo caption = The MIT/GNU Scheme logo highlights function recursion.

| screenshot =

| screenshot caption =

| paradigms = Multi-paradigm: functional, imperative, meta

| family = Lisp

| designers = 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

| released = {{Start date and age|1979}}{{cite web |url=https://www.reddit.com/r/scheme/comments/tve4wh/oldest_scheme_implementations/i38ujqt/ |title=Oldest Scheme Implementations |date=3 Apr 2022}}

| latest release version = 12.1

| latest release date = {{Start date and age|2023|01|07|df=yes}}{{cite web |url=https://lists.gnu.org/archive/html/mit-scheme-announce/2023-01/msg00000.html |title=[MIT-Scheme-announce] Stable release 12.1 |last1=Hanson |first1=Chris|date=20 October 2024 |access-date=20 October 2024}}

| latest preview version =

| latest preview date =

| typing = Dynamic, latent, strong

| scope = Lexical

| programming language =

| platform = x86: IA-32, x86-64

| operating system = Cross-platform: Linux, NetBSD, macOS

| license = GPL

| file ext =

| file format =

| website = {{URL|www.gnu.org/software/mit-scheme}}

| implementations =

| dialects =

| influenced by = Lisp, Scheme

| influenced =

}}

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.{{cite web |url=https://www.gnu.org/software/mit-scheme/release.html |title=MIT/GNU Scheme release notes |date=3 Oct 2021 |access-date=3 Oct 2021}} It is free and open-source software released under v2 or later of the GNU General Public License (GPL).{{Cite web |title=MIT/GNU Scheme - GNU Project - Free Software Foundation |url=https://www.gnu.org/software/mit-scheme/index.html |access-date=2023-03-02 |website=www.gnu.org}} It was first released by Guy Lewis Steele Jr. and Gerald Jay Sussman at the Massachusetts Institute of Technology in 1986,{{cite web |url=http://www-mips.unice.fr/~roy/JAOO-SchemeHistory-2006public.pdf |title=History of Scheme |last=Steele |first=Guy |date=2006 |website=Sun Microsystems Laboratories |format=PDF slideshow }} as free software even before the Free Software Foundation, GNU, and the GPL existed.{{cite web |url=https://www.gnu.org/software/mit-scheme/ |title=MIT/GNU Scheme |last=Hanson |first=Chris |website=GNU Operating System |publisher=Free Software Foundation |date=28 October 2018 |access-date=11 April 2019}} It is now part of the GNU Project.{{cite web |url=http://directory.fsf.org/wiki/GNU |title=Free Software Directory |author= |date= |website=GNU Operating System |publisher=Free Software Foundation |access-date=11 April 2019}}

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.{{Cite web |title=Source code: mit-scheme.git |url=https://git.savannah.gnu.org/cgit/mit-scheme.git/tree/src/microcode/errors.h#n277 |access-date=2023-02-28 |website=git.savannah.gnu.org}}

class="wikitable"

|+

!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: [https://savannah.gnu.org/bugs/?44086 bug report].  We changed the verb ending, but I'm still not sure whether that was necessary."{{Cite web |last=Gleckler |first=Arthur A. |date=16 February 2023 |title=Re: Latin Phrases on exit |url=https://lists.gnu.org/archive/html/mit-scheme-devel/2023-02/msg00001.html |website=lists.gnu.org/archive}}

References

{{Reflist}}