![編輯維基數據鏈接](//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png)
型態系統 | 动态, 强类型, 潜在(英语:Latent typing) |
---|
作用域 | 词法 |
---|
操作系统 | 跨平台 |
---|
許可證 | BSD |
---|
網站 | s48.org |
Scheme 48是Scheme编程语言的一种方言,遵循了R5RS标准[1],这个实现使用了发送字节码的解释器[2]。它有一个外界函数接口(英语:foreign function interface)用于调用来C语言的函数[3],并带有一个正则表达式(regex)库[4],和一个到可移植操作系统接口(POSIX)的接口[5]。它支持可移植Scheme库SLIB(英语:SLIB),并且是Scheme shell Scsh(英语:Scsh)的基础[2]。它已经被用于学术研究之中[6]。它是在BSD许可证下发行的自由及开放源代码软件。
叫做“Scheme 48”是因为它的第一版是在1986年8月用48小时写成的[7] 。
实现
Scheme 48使用了一个虚拟机来解释字节码,它是用叫做PreScheme的一个Scheme的受限方言写成的,这个方言可以被转换成C并编译成本机二进制代码。PreScheme或写为Pre-Scheme,是静态类型的Scheme方言,具有C的高效性和低层机器访问,却保持了多数想要的Scheme特征[8]。
Pre-scheme是非常有价值的。我确信Kelsey曾发表了一篇关于它的论文。它在可以被装载入Scheme系统并运行代码的意义上是Scheme。但是它是有限制的 – 它要求你以允许完全的Hindley-Milner静态类型推论的风格来书写程序,而所有高阶过程都在编译时间被beta-代换了,这意味你可以*直接*将Prescheme程序转写“自然的”C代码而具有C水平的效率。这就是说,你可以将Prescheme看作对用于低层代码的C的真实舒适替代者。并且在拨转开关而转换到C代码之前,你可以在你选择的交互式Scheme开发环境中调试你的Prescheme程序,因为Prescheme就是受限的Scheme。Scheme 48字节码解释器是用Prescheme书写的。Prescheme差不多消亡了 – 除了他写的那篇学术论文,Kelsey从未有时间书写它的文档并将它变成其他人可以使用的独立工具(Ian Horswill在西北大学的小组是这个论断的一个例外 – 他们已经将Prescheme用于了有价值的工作。)
——Olin Shivers,"Olin Shivers: History of T(英语:T (programming language))"[9]
引用
- ^ R5RS claim (页面存档备份,存于互联网档案馆)
- ^ 2.0 2.1 Kelsey, Richard; Rees, Jonathan. Scheme 48. S48.org. [2018-12-05]. (原始内容存档于2022-04-21).
- ^ Kelsey, Richard; Rees, Jonathan; Sperber, Mike. The Incomplete Scheme 48 Reference Manual for release 1.8: Mixing Scheme 48 and C. S48.org. 10 January 2008 [2018-12-05]. (原始内容存档于2021-11-06). , Chapter 8 in manual for version 1.8.
- ^ Kelsey, Richard; Rees, Jonathan; Sperber, Mike. The Incomplete Scheme 48 Reference Manual for release 1.8: Regular Expressions. S48.org. 10 January 2008 [2018-12-05]. (原始内容存档于2021-11-04). , Chapter 5 in manual for version 1.8.
- ^ Kelsey, Richard; Rees, Jonathan; Sperber, Mike. The Incomplete Scheme 48 Reference Manual for release 1.8: Access to POSIX. S48.org. 10 January 2008 [2018-12-05]. (原始内容存档于2021-11-06). , Chapter 9 in manual for version 1.8.
- ^ Final shift for call/cc: direct implementation of shift and reset
- ^ Rees, Jonathan A. JAR's Scheme 48 Page. Jonathan A. Rees. Mumble.net. [2018-12-05]. (原始内容存档于2021-05-24).
- ^ Richard Kelsey. Pre-Scheme: A Scheme Dialect for Systems Programming. 1997 [2021-11-04]. (原始内容存档于2009-08-14).
- ^ Shivers, Olin. Olin Shivers: History of T. PaulGraham.com. [2018-12-05]. (原始内容存档于2022-10-05).
外部链接
|
---|
| 特征 | | |
---|
| | - Common Lisp对象系统(CLOS)
- CommonLoops(英语:CommonLoops)
- Flavors(英语:Flavors (programming language))
|
---|
|
---|
| 实现(英语:Programming language implementation) | | Common Lisp | |
---|
| | - Bigloo(英语:Bigloo)
- Chez Scheme
- Chicken
- Gambit
- Gauche(英语:Gauche (Scheme implementation))
- GNU Guile
- Ikarus(英语:Ikarus (Scheme implementation))
- IronScheme(英语:IronScheme)
- JScheme
- Kawa(英语:Kawa (Scheme implementation))
- Larceny
- MIT/GNU Scheme
- Racket
- RScheme(英语:RScheme)
- Scheme 48
- SCM
- SIOD
- STklos(英语:STklos)
- TinyScheme
- Ypsilon(英语:Ypsilon (Scheme implementation))
|
---|
| | - OpenLisp(英语:OpenLisp)
- Easy-ISLisp
|
---|
|
---|
| 未标准化 | | - Arc
- AutoLISP
- BBN LISP
- Clojure
- Dylan
- Emacs Lisp
- EuLisp(英语:EuLisp)
- Franz Lisp
- GOAL(英语:Game Oriented Assembly Lisp)
- Hy
- Interlisp(英语:Interlisp)
- 知识工程环境(英语:Knowledge Engineering Environment)
- LispKit
- *Lisp(英语:*Lisp)
- Le Lisp
- LFE(英语:LFE (programming language))
- Lisp Machine Lisp(英语:Lisp Machine Lisp)
- Maclisp
- MDL(英语:MDL (programming language))
- MLisp(英语:MLisp)
- MultiLisp(英语:MultiLisp)
- newLISP
- NIL(英语:NIL (programming language))
- PC-LISP(英语:PC-LISP)
- PicoLisp
- Portable Standard Lisp(英语:Portable Standard Lisp)
- RPL(英语:RPL (programming language))
- S-1 Lisp(英语:S-1 Lisp)
- SKILL
- Spice Lisp(英语:Spice Lisp)
- T(英语:T (programming language))
- Zetalisp(英语:Zetalisp)
|
---|
| Logo | - MSWLogo(英语:MSWLogo)
- NetLogo
- StarLogo(英语:StarLogo)
- UCBLogo(英语:UCBLogo)
|
---|
|
---|
| | - Common Lisp界面管理器(英语:Common Lisp Interface Manager)
- McCLIM(英语:McCLIM)
- Genera(英语:Genera (operating system))
- Scsh(英语:Scsh)
|
---|
| | - Lisp机器
- TI Explorer(英语:TI Explorer)
- Space-cadet键盘(英语:Space-cadet keyboard)
|
---|
|
---|
| 实践 社群 | 技术标准 | - Scheme实现要求(英语:Scheme Requests for Implementation)
- Common Lisp HyperSpec(英语:Common Lisp HyperSpec)
- X3J13(英语:X3J13)
|
---|
| 教育 | 图书 | - Common Lisp语言(英语:Common Lisp the Language)
- 如何设计程序(HtDP)
- On Lisp(英语:On Lisp)
- Practical Common Lisp(英语:Practical Common Lisp)
- 计算机程序的构造和解释(SICP)
|
---|
| 教程 | - ProgramByDesign(英语:ProgramByDesign)
|
---|
|
---|
| 组织 | 商业 | - 苹果公司
- BBN
- Harlequin(英语:Harlequin (software company))
- Lucid Inc.(英语:Lucid Inc.)
- Symbolics(英语:Symbolics)
- Xanalys(英语:Xanalys)
|
---|
| 教育 | - 麻省理工学院
- 斯坦福人工智能实验室(英语:Stanford University centers and institutes#Stanford Artificial Intelligence Laboratory)
- 加利福尼亚大学伯克利分校
|
---|
|
---|
| 人士 | | |
---|
| Common Lisp | - Scott Fahlman(英语:Scott Fahlman)
- Richard P. Gabriel(英语:Richard P. Gabriel)
- Philip Greenspun(英语:Philip Greenspun)
- David A. Moon(英语:David A. Moon)
- Kent Pitman(英语:Kent Pitman)
- Guy L. Steele Jr.
- Daniel Weinreb(英语:Daniel Weinreb)
|
---|
| | |
---|
| Logo | |
---|
|
---|
|
---|
| 语言 家族 列表(英语:List of Lisp-family programming languages) |
|