ソース(プログラミング言語)

ソース
パラダイムマルチパラダイムスクリプト命令型手続き型関数型
家族ECMAScript : JavaScript
初登場2017 (2017年
安定版リリース
2024年(奇妙な)/ 2021年12月31日 ( 2021-12-31 )
タイピングの規律ダイナミックアヒル
OSブラウザベース
ライセンスアパッチ
ファイル名拡張子.js
Webサイトドキュメント.sourceacademy .org
主要な実装
Safari(SafariのJavaScriptは適切に末尾再帰的である)、ソースアカデミー[ 1 ]
方言
ソース§1、ソース§2、ソース§3、ソース§4
影響を受けた
JavaScriptScheme

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」と呼ばれ、ダグラス・クロックフォード著『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言語を実装したWebベースのプログラミング環境で、SICP JSのリーダー向けにさまざまなツールが用意されています。Source Academyの言語実装であるjs-slang [ 6 ]は、 Node.jsをベースにしたスタンドアロン環境としても利用できます。

参考文献

  1. ^ 「Source Academy」 . NUS. 2020. 2022年3月25日閲覧
  2. ^ Crockford, Douglas (2008). JavaScript: The Good Parts . O'Reilly. ISBN 9780596517748
  3. ^ Anderson, Boyd; Henz, Martin; Low, Kok-Lim; Tan, Daryl (2021年10月20日). "Shrinking JavaScript for CS1". International Symposium on SPLASH-E . Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2021). New York, NY: ACM SIGPLAN. pp.  65– 70. doi : 10.1145/3484272.3484970 .
  4. ^ "npm package sicp" . Source Academy. 2021. 2022年3月25日閲覧
  5. ^ 「Source Academy」 . NUS. 2020. 2022年3月25日閲覧
  6. ^ "js-slang on github" . NUS. 2020. 2022年3月25日閲覧