
Subtextは、アプリケーション ソフトウェアを作成するための、中程度のビジュアル プログラミング言語および環境です。これは、プログラム構造の第一級プロトタイプとしてコピーされたブロックを扱うことにより、例中心プログラミングと呼ばれる新しいプログラミングモデルを開発する実験的かつ研究的な試みです。頻繁なフィードバックのために、ユーザーがセルを更新したときにスプレッドシートで発生するのと同様のライブ テキストを使用します。最終的には、日常的に使用できる実用的な言語になるほど開発される予定です。オープン ソフトウェアになる予定ですが、ライセンスはまだ決定されていません。
Subtext は Jonathan Edwards によって作成され、彼はこの言語に関する論文をOOPSLAに提出しました。この論文は 2005 年の会議で採択されました。
環境


Subtext環境の初期のビデオプレビューは2006年頃にリリースされ、[1] Subtextプログラムのセマンティクスと、Subtex環境およびランタイムとの緊密な統合が実証されました。
Subtext プログラムは、テキスト プログラムを入力するのではなく、構文ツリーにさまざまなタイプの要素を追加してリンクし、必要に応じて値や名前を入力することによって宣言および操作 (または変更) されます。 Subtext 言語と環境の設計により、プログラムの表現と実行の間に区別はありません。 スプレッドシートと同様に、Subtext プログラムは環境とランタイム内でライブ実行され、プログラミングはグラフィカル環境を介してこれらの実行を直接操作します。 一般的な関数型プログラミング言語とは異なり、Subtext はセマンティクスが単純で、「リアクティブ プログラミング」と呼ばれるモデルの下で、可変状態、I/O、および並行性を必要とするリアクティブ システムに簡単に適用できます。[2] コンソール入力 (「呼び出し」) は、Subtext プログラム内のデータ フローを介して利用できるため、ユーザーは対話的に値を操作できます。
一貫性
Subtext言語の継続とサブセットで、他の原理を使用しているのが[3] Coherenceです。これは実験的なプログラミング言語と環境で、「Coherent reaction」と呼ばれる新しい変更駆動型計算モデルを使用して、プログラムの開発中にインタラクティブにプログラムの効果と副作用を調整します。この言語はインタラクティブなアプリケーションソフトウェアに特化しており、Subtextの作成者であるJonathan Edwardsによって設計されており、彼はホワイトペーパーを公開して開発状況を報告しています。
副作用は命令型プログラミングの本質であると同時に悩みの種でもあります。プログラマーは、アクションが互いに及ぼす副作用を管理するために、アクションを注意深く調整する必要があります。このような調整は複雑で、エラーが発生しやすく、脆弱です。コヒーレント リアクションは、効果を自動的に調整する、変更主導型計算の新しいモデルです。アクションを自動的に調整することで、プログラマーはいつ行うかではなく、何をするかを表現できます。
— ジョナサン・エドワーズ、コヒーレント反応、MIT CSAIL

状態の変化は反応と呼ばれるイベントを引き起こし、それが他の状態を変化させます。コヒーレントな実行順序とは、各反応がその変化の影響を受ける他の反応よりも先に実行される順序です。コヒーレントな順序は、不整合が発生したときにそれを検出し、その影響をバックトラックすることで繰り返し検出されます。Coherence の基本的な構成要素は、動的に型付けされた可変ツリーです。基本的な抽象化メカニズムは仮想ツリーであり、その値は遅延計算され、その動作はコヒーレントな反応によって生成されます。[4]
参考文献
- 例中心のプログラミング Jonathan Edwards。OOPSLA 2004 年 10 月号。プログラマがプログラム コードを頭の中で解釈するのではなく、開発中にプログラムの結果を提示する高度な UI テクニックを使用した IDE の改善について説明します。Eclipse を使用したプロトタイプ IDE のスクリーンショットで、機能例とともにテクニックを説明します。
- サブテキスト: プログラミングのシンプルさを明らかにする Jonathan Edwards。OOPSLA 2005 年 10 月: オブジェクト指向プログラミング、システム、言語、およびアプリケーションに関する第 20 回 ACM SIGPLAN カンファレンスの議事録。
- ファーストクラスのコピー & ペースト Jonathan Edwards。2006 年 3 月の MIT CSAIL ドラフト ペーパー。データ フロー、割り当て、「アクション」呼び出し、現在のデータ状態と仮想データ状態、同時トランザクション、コンソール エージェントの操作など、最初の Subtext 環境内のさまざまな関数型プログラミング要素の詳細な説明と図解。
- Coherent Reaction Jonathan Edwards。OOPSLA Onward '09 に掲載。Subtext をベースにした実験的なプログラミング言語の始まりについて説明しています。この言語は、変更駆動型計算の新しいモデルである「Coherent Reaction」を使用して、プログラムの効果と副作用を自動的に調整します。(レポート)
- 引用
- ^ サブテキスト、I/O、可変状態の紹介、最初のサブテキスト環境のビデオデモ
- ^ First Class Copy & Paste、MIT CSAIL の Jonathan Edwards による 2006 年の草稿論文。
- ^ Coherenceのホームページでは、Subtextの継続について述べている
- ^ DSpace@MIT : コヒーレント反応、CSAIL デジタル アーカイブ、技術レポート
外部リンク
- Subtextual.org、Subtext の公式ウェブサイト。
