| パラダイム | マルチパラダイム:スクリプト、命令型、手続き型、 関数型 |
|---|---|
| 初登場 | 2017 |
| 安定版リリース | 2024 (変) / 2021年12月31日 |
| タイピングの規律 | ダイナミック、アヒル |
| OS | ブラウザベース |
| ライセンス | アパッチ |
| ファイル名拡張子 | .js |
| Webサイト | ドキュメント |
| 主な実装 | |
| Safari(SafariのJavaScriptは適切に末尾再帰的です)、Source Academy [1] | |
| 方言 | |
| ソース §1、ソース §2、ソース §3、ソース §4 | |
| 影響を受けた | |
| JavaScript、Scheme | |
Source は、教科書「Structure and Interpretation of Computer Programs, JavaScript Edition (SICP JS)」用に開発された、 JavaScriptのサブ言語のファミリーです。JavaScript のサブ言語 Source §1、Source §2、Source §3、Source §4 は、教科書のそれぞれの章のすべての例をサポートするのに十分な表現力を持つように設計されています。
目的と設計原則
2008 年に始まった SICP JS の開発中に、JavaScript の目的に合わせて設計されたサブ言語が学習体験に貢献することが明らかになりました。当初は「JediScript」と呼ばれ、Douglas Crockfordの著書「JavaScript: The Good Parts」 [2]に触発された Source サブ言語は、SICP JS の章に従っています。各言語 Source §x は、次の言語 Source §(x+1) のサブ言語です。SICP JS の最小限のアプローチに従って、Source の実装では、言語仕様に含まれていない JavaScript 言語機能をすべて削除することが期待されています。[3]
特徴
ソース §1 は、SICP JS の第 1 章用に設計された、JavaScript の非常に小さな純粋に機能的なサブ言語です。ソース §2 は、第 2 章のデータ構造のテーマに従って、ペアとリスト ライブラリを追加します。ソース §3 は状態のある構造を追加し、ソース §4 はメタ循環評価のサポートを追加します。SICP JS の第 5 章では、ソース §4 を超える言語サポートは必要ありません。すべてのソース言語は、SICPの第 1 章で要求され、ECMAScript 2015 で指定されているように、適切に末尾再帰的です。
ソースアカデミー
Safariブラウザは適切な末尾呼び出しを含むECMAScript -2015準拠であるため、SICPパッケージがロードされていれば、すべてのSource言語の実装として機能することができます。[4] Source Academy [5]は、ブラウザの適切な末尾呼び出しのサポートに関係なく、すべてのSource言語を実装し、SICP JSのリーダー用のさまざまなツールを備えたWebベースのプログラミング環境です。Source Academyの言語実装であるjs-slang [6]は、Node.jsに基づくスタンドアロン環境としても利用できます。
参考文献
- ^ “Source Academy”. NUS. 2020年. 2022年3月25日閲覧。
- ^ ダグラス・クロックフォード (2008)。JavaScript: The Good Parts。オライリー。ISBN 9780596517748。
- ^ Anderson, Boyd; Henz, Martin; Low, Kok-Lim; Tan, Daryl (2021年10月20日). 「CS1向けのJavaScriptの縮小」。International Symposium on SPLASH-E。2021 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2021) の議事録。ニューヨーク、NY: ACM SIGPLAN。pp. 65–70。doi : 10.1145 /3484272.3484970。
- ^ 「npm package sicp」. Source Academy. 2021年. 2022年3月25日閲覧。
- ^ “Source Academy”. NUS. 2020年. 2022年3月25日閲覧。
- ^ 「js-slang on github」。NUS。2020年。 2022年3月25日閲覧。
外部リンク
- 「出典(公式サイト)」。2021年12月31日。 2022年3月25日閲覧。
