Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Scheme 48

From Wikipedia, the free encyclopedia
Dialect of the Scheme programming language
Scheme 48
ParadigmsMulti:functional,procedural,meta
FamilyLisp
Designed byRichard Kelsey,
Jonathan Rees
DevelopersRichard Kelsey,
Jonathan Rees
First appearedMarch 1987; 38 years ago (1987-03)
Stable release
1.9.3 / 4 December 2024; 14 months ago (2024-12-04)
Typing disciplineDynamic,strong,Latent
ScopeLexical
OSCross-platform
LicenseBSD
Websites48.org

Scheme 48 is aprogramming language, adialect of the languageScheme, an implementation using aninterpreter which interpretsbytecode.[1] It has aforeign function interface for callingfunctions from the languageC[2] and comes with alibrary forregular expressions (regex),[3] and an interface for Portable Operating System Interface (POSIX).[4] It is supported by the portable Scheme librarySLIB, and is the basis for the Scheme shellScsh.[1] It has been used in academic research.[5] It isfree and open-source software released under aBSD license.

It is called "Scheme 48" because the first version was written in 48 hours in August 1986.[6] The authors now[when?] say it is intended to be understood in 48 hours.[citation needed]

Implementation

[edit]
"PreScheme" redirects here. For the use of this term in mathematics, seeScheme (mathematics) § Definition.

Scheme 48 uses avirtual machine to interpret thebytecode, which is written in a restricted dialect of Scheme called PreScheme, which can be translated to C and compiled to a native binary. PreScheme, or Pre-Scheme, is a statically-typed dialect of Scheme with the efficiency and low-level machine access of C while retaining many of the desirable features of Scheme.

Pre-scheme was quite interesting. Kelsey published a paper on it, as well, I believe. It was Scheme in the sense that you could load it into a Scheme system and run the code. But it was restrictive – it required you to write in a fashion that allowed complete Hindley-Milner static type inference, and all higher-order procedures were beta-substituted away at compile time, meaning you could *straightforwardly* translate a prescheme program into "natural" C code with C-level effiency [sic]. That is, you could view prescheme as a really pleasant alternative to C for low-level code. And you could debug your prescheme programs in the interactive Scheme development environment of your choice, before flipping a switch and translating to C code, because prescheme was just a restricted Scheme. The Scheme 48 byte-code interpreter was written in prescheme. Prescheme sort of died – beyond the academic paper he wrote, Kelsey never quite had the time to document it and turn it into a standalone tool that other people could use (Ian Horswill's group at Northwestern is an exception to that claim – they have used prescheme

— Olin Shivers, "Olin Shivers: History of T"[7]

References

[edit]
  1. ^abKelsey, Richard; Rees, Jonathan."Scheme 48".S48.org. Retrieved2018-12-05.
  2. ^Kelsey, Richard; Rees, Jonathan; Sperber, Mike (10 January 2008)."The Incomplete Scheme 48 Reference Manual for release 1.8: Mixing Scheme 48 and C".S48.org. Retrieved2018-12-05., Chapter 8 in manual for version 1.8.
  3. ^Kelsey, Richard; Rees, Jonathan; Sperber, Mike (10 January 2008)."The Incomplete Scheme 48 Reference Manual for release 1.8: Regular Expressions".S48.org. Retrieved2018-12-05., Chapter 5 in manual for version 1.8.
  4. ^Kelsey, Richard; Rees, Jonathan; Sperber, Mike (10 January 2008)."The Incomplete Scheme 48 Reference Manual for release 1.8: Access to POSIX".S48.org. Retrieved2018-12-05., Chapter 9 in manual for version 1.8.
  5. ^Final shift for call/cc: direct implementation of shift and reset
  6. ^Rees, Jonathan A."JAR's Scheme 48 Page".Jonathan A. Rees. Mumble.net. Retrieved2018-12-05.
  7. ^Shivers, Olin."Olin Shivers: History of T".PaulGraham.com. Retrieved2018-12-05.

External links

[edit]
Features
Object systems
Implementations
Standardized
Common
Lisp
Scheme
ISLISP
Unstandardized
Logo
POP
Operating system
Hardware
Community
of practice
Technical standards
Education
Books
Curriculum
Organizations
Business
Education
People
Common
Lisp
Scheme
Logo
POP
Stub icon

Thisfree and open-source software article is astub. You can help Wikipedia byadding missing information.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Scheme_48&oldid=1291153904"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp