| スキーム48 | |
|---|---|
| パラダイム | マルチ:機能的、手続き的、メタ |
| 家族 | Lisp |
| デザイン : | リチャード・ケルシー、ジョナサン・リース |
| 開発者 | リチャード・ケルシー、ジョナサン・リース |
| 初 登場 | 1987年3月 (1987-03) |
| 安定放出 | 1.9.3 / 2024年12月4日 ( 2024-12-04 ) |
| タイピングの規律 | ダイナミック、強力、潜在的 |
| 範囲 | 語彙 |
| OS | クロスプラットフォーム |
| ライセンス | BSD |
| Webサイト | s48.org |
Scheme 48はプログラミング言語であり、Scheme言語の方言であり、バイトコードを解釈するインタプリタを使用した実装です。[ 1 ] C言語の関数を呼び出すための外部関数インターフェースを持ち、 [ 2 ]正規表現(regex)のライブラリ、 [ 3 ]およびポータブルオペレーティングシステムインターフェース ( POSIX )のインターフェースが付属しています。[ 4 ]ポータブル Scheme ライブラリSLIBによってサポートされており、Scheme シェルScshの基盤となっています。[ 1 ]学術研究で使用されています。[ 5 ] BSDライセンスでリリースされたフリーでオープンソースのソフトウェアです。
「スキーム48」と呼ばれるのは、最初のバージョンが1986年8月に48時間で書かれたためです。[ 6 ]現在、著者らは、48時間で理解できるように意図されていると述べています。
Scheme 48 は、仮想マシンを使用してバイトコードを解釈します。バイトコードは、PreScheme と呼ばれる Scheme の限定された方言で記述されており、C に変換してネイティブバイナリにコンパイルできます。PreScheme または Pre-Scheme は、Scheme の多くの望ましい機能を保持しながら、C の効率性と低レベルのマシンアクセスを備えた、静的型付けの Scheme の方言です。
プレスキームは非常に興味深いものでした。確かケルシーもそれに関する論文を発表していたと思います。Scheme システムにロードしてコードを実行できるという意味では Scheme でしたが、制約が多く、完全な Hindley-Milner 静的型推論を可能にする書き方を要求され、すべての高階手続きはコンパイル時にベータ置換によって削除されるため、プレスキーム プログラムを C レベルの効率で「自然な」 C コードに *そのまま* 変換することができました。つまり、プレスキームは低レベルコードにとって C の非常に快適な代替手段と見なすことができました。また、プレスキームは単なる制限付き Scheme だったので、スイッチを切り替えて C コードに変換する前に、任意の対話型 Scheme 開発環境でプレスキーム プログラムをデバッグすることができました。Scheme 48 バイト コード インタプリタはプレスキームで書かれていました。 Prescheme は事実上消滅した。ケルシーは、彼が書いた学術論文以外に、それを文書化して他の人が使用できる独立したツールにする時間がなかった(ノースウェスタン大学のイアン・ホースウィルのグループは例外で、Prescheme を使用している)。
—オリン・シヴァーズ、『オリン・シヴァーズ:Tの歴史』[ 7 ]