Scheme

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Scheme
Scheme
Schemeのロゴ
パラダイム 関数型プログラミング手続き型プログラミングメタプログラミング命令型プログラミング ウィキデータを編集
登場時期 1975年 (49年前) (1975)
設計者 ガイ・L・スティール・ジュニアジェラルド・ジェイ・サスマン
最新リリース R7RS-small / 2013[1]
型付け 強い、動的型付け
主な処理系 GaucheRacketMIT/GNU SchemeScheme 48GuileChez Scheme
影響を受けた言語 LISPALGOL、MDL (プログラミング言語) ウィキデータを編集
影響を与えた言語 ClojureCommon LispDylanEgisonEuLispHaskellHopJavaScriptJuliaLuaMultiLispPythonRRacketRubyRust[2]SScalaT
ウェブサイト www.scheme-reports.org ウィキデータを編集
拡張子 scm、ss ウィキデータを編集
テンプレートを表示

Scheme LISP20177SchemeLISP

[]


SchemeMIT AI1975PLASMAPlanner-73

ALGOL[ 1][ 2]lambda λ[ 3][ 4]

[ 5][ 6][ 7][ 8]

[]


MITLISP
言語 作者
1960年 LISP マッカーシー、他
1964年 Meteor ボブロウ
1969年 Convert ガズマン
1969年 Planner ヒューイット
1970年 Muddle サスマン、ヒューイット、他
1971年 Micro-Planner サスマン、他
1972年 Conniver サスマン、他
1973年 Plasma ヒューイット、他
1975年 Schemer サスマン、スティール

 Planner [ 9] Micro-Planner  Planner  Conniver 

 Plasma (Planner-73) MacLisp  Plasma  LISP  Plasma 

 Plasma  Plasma  Planner  Micro-Planner  Conniver 彿 Planner Conniver Schemer6 Scheme 使

機能[編集]

静的スコープ[編集]


19791960LISPLISP IIn modern terminology, lexical scoping was wanted, and dynamic scoping was obtained.[3]

1962 LISP 1.5 ALGOL60ALGOL[4]

1962 LISP 1.5 1960 Maclisp [5]

FUNARGLISP1975SchemeSchemeLISPSchemeCommon Lisp

[]

call-with-current-continuation[]


Scheme call-with-current-continuationcall/cc[ 10][ 11]

[]


Scheme IEEE[6]Revisedn Report on the Algorithmic Language Scheme (RnRS)2016R5RS1998

20079The Revised6 Report on the Algorithmic Language Scheme (R6RS)[7]4R5RS3R5RSUnicode R5RSERR5RS (Extended R5RS Scheme) 

20098Scheme Scheme [8]

20137The Revised7 Report on the Algorithmic Language Scheme (R7RS)[9] (small language) 

仕様の決定[編集]

実装[編集]


Scheme R5RS50

Bigloo - 

BiwaScheme - JavaScript 

Chez Scheme - 

Chicken - 

Gauche - STklos 

Gambit - SchemeSchemeC

GNU Guile - GNU Scheme 

HScheme

IronScheme

Jscheme

JAKLD - Java LISP

Kawa - GNUScheme  Java 

Larceny - IA-32SPARC IEEE/ANSIR5RSERR5RS, R6RS

LispMe - Palm OS 

MIT Scheme - x86 Scheme 

Mosh - R6RSFFI

Ocs

PocketScheme - Windows CE 

Racket -  PLT Scheme使

QScheme

rhizome/pi

Scheme48

SECDR-Scheme - Lispkit Lisp Scheme

SigScheme - R5RSuim使

SISC - Second Interpreter of Scheme CodeJava R5RSJava  Scheme 

TinyScheme - Zaurus

Vx-scheme - VxWorks 

Ypsilon - R6RS

SRFI[]


Scheme Scheme Requests for Implementation (SRFI)SRFI SRFI 便

Scheme SRFI  Scheme 

[]


Scheme 使

GIMP  Script-Fu

uim

LilyPond

3D Scheme [10] Scheme 使[11]

Android  App Inventor Scheme  Kawa 使Java

[]

[]


Scheme [12]
題名
1975年 Scheme: An Interpreter for Extended Lambda Calculus[13][14]
1976年 Lambda: The Ultimate Imperative
1976年 Lambda: The Ultimate Declarative
1977年 Debunking the 'Expensive Procedure Call' Myth, or, Procedure Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO
1978年 The Art of the Interpreter or, the Modularity Complex (Parts Zero, One, and Two)
1978年 RABBIT: A Compiler for SCHEME
1979年 Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
1980年 Compiler Optimization Based on Viewing LAMBDA as RENAME + GOTO
1980年 Design of a Lisp-based Processor

参考文献[編集]

脚注[編集]

注釈[編集]



(一)^ ALGOLFUNARGALGOL調

(二)^ : closure

(三)^ : lambda calculus

(四)^ : tail-recursion

(五)^ : continuation

(六)^ : message passing

(七)^ : continuation passing styleCPS

(八)^ λJohn C. Reynolds (1972), Denitional Interpreters for Higher-Order Programming Languages, http://cs.au.dk/~hosc/local/HOSC-11-4-pp363-397.pdf 

(九)^  Planner  Julian Davies  POP-2  Popler 

(十)^  CATCH 

(11)^ : escape operator

出典[編集]



(一)^ URL: https://small.r7rs.org/

(二)^ Influences - The Rust Reference. The Rust Reference. 2023418

(三)^ From LISP 1 to LISP 1.5. www-formal.stanford.edu. 202448

(四)^ Scheme  bitVol. 28, No.419964 pp. 49

(五)^ Baker, Henry G. (July 1978). Shallow binding in Lisp 1.5. Commun. ACM (New York, NY, USA: Association for Computing Machinery) 21 (7): 565569. doi:10.1145/359545.359566. ISSN 0001-0782. https://doi.org/10.1145/359545.359566. 

(六)^ 1178-1990 (Reaff 2008) IEEE Standard for the Scheme Programming Language. IEEE part number STDPD14209, unanimously reaffirmed at a meeting of the IEEE-SA Standards Board Standards Review Committee (RevCom), March 26, 2008 (item 6.3 on minutes), reaffirmation minutes accessed October 2009. NOTE: this document is only available for purchase from IEEE and is not available online at the time of writing (2009).

(七)^ Michael Sperber . The Revised6 Report on the Algorithmic Language Scheme (). 200922

(八)^ Position statement (). 20131216

(九)^ Scheme Working Groups (). 20131216

(十)^  (200210). Gluing Things Together - Scheme in the Real-time CG Content Production. 2014620

(11)^ . YPSILON. 2014620

(12)^ Online version of the Lambda Papers (PDF) 

(13)^ Sussman, Gerald Jay; Steele, Guy Lewis (1975). Scheme: An Interpreter for Extended Lambda Calculus (Report). Massachusetts Institute of Technology. hdl:1721.1/5794

(14)^ Sussman, Gerald Jay; Steele Jr, Guy L (1998). Scheme: A interpreter for extended lambda calculus. Higher-Order and Symbolic Computation (Springer) 11 (4): 405439. doi:10.1023/A:1010035624696. https://www.researchgate.net/publication/227098423_Scheme_A_Interpreter_for_Extended_Lambda_Calculus. 

関連項目[編集]

外部リンク[編集]