4

最初は Microsoft で、次に彼自身の会社で、意図的プログラミングの分野を確立しようとする Charles Simonyi の努力の野心と創造性に私は感銘を受けました。

意図的なプログラミングとは正確には何ですか

http://en.wikipedia.org/wiki/Intentional_programming

このソフトウェアへのアプローチでは、プログラマーはまず、特定の問題領域 (生命保険など) に固有のツールボックスを構築します。ドメインの専門家は、プログラマーの助けを借りて、WYSIWYG (What You See Is What You Get) のような方法で、プログラムの意図した動作を説明します。自動化されたシステムは、プログラム記述とツールボックスを使用して最終的なプログラムを生成します。連続した変更は、WYSIWYG レベルでのみ行われます。

これは、プログラミングに対する非常に有用で実用的なアプローチのようであり、現在のソフトウェア開発アプローチに伴う問題の多くを回避できる可能性があります。

基本的に、非プログラマー (ビジネス/システム アナリスト) によるドメイン固有言語の作成を容易にするように見えますが、UML が提供できるよりも実際の実装にはるかに近い段階にあります。最終的には完成するだろうが、まだ完成していない(ほぼ 15 年後)と彼は言う。

DSL は、単純な 5 行のルール エンジンから、Ruby on Rails のような複雑なアプリケーションまで、あらゆる範囲を実行します。したがって、彼の製品のリリースが遅れたのは、すべてのドメイン言語を一度にカプセル化できるようにする必要があるため、彼がはるかに高いレベルの抽象化を単純化することに取り組んでいるという事実に関係していると思います。

だから、私の質問は

(a) Antlrが意図的なプログラミングの代替になるかどうか - ビジネス アナリストが DSL を生成することを許可するのではなく、プログラマーの介入を必要とする、おそらくユーザーフレンドリーではない代替案ですが? Antlr を使用して、Ruby on Rails のような DSL を生成できますか (Ruby を出力としてサポートしていると仮定しますが、サポートされていないと思います)。できないことは何ですか?また、「言語ジェネレーター」ではなく「言語パーサー」と呼ばれる理由がわかりません。後者は使用目的を説明し、前者は最終結果をどのように達成するかを説明するためです。

(b) Antlr が意図的なプログラミングと異なる場合、意図的なプログラミングに似たものはありますか?

4

3 に答える 3

3

パート b) の回答として、同様の分野で機能する 3 つのシステムは次のとおりです。

これらの製品にはそれぞれ異なる長所と短所がありますが、それらはすべてLanguage Workbenchのカテゴリに分類されます。Intentional Software の Intentional Workbench は、おそらくこのカテゴリでこれまでで最も野心的な製品ですが、一般には入手できません。

MPS と xText は無料のオープンソース製品です。MetaCase は最も成熟した商用製品です。それらはすべて、急な学習曲線を持っています。

于 2010-02-18T23:16:05.980 に答える
2

ANTLRは単なるパーサジェネレータです。重要なDSLでは、パーサーの作成はDSLの実装に費やされる労力の50%未満です。エバリュエーター/ルールエンジン/コードジェネレーター/スケジュールまたはDSLが行うその他のことは、おそらくより多くの作業を必要とし、パーサーのように生成することはできません。

于 2009-02-01T13:41:44.180 に答える
2

私はこれについての専門家ではないので、塩の大きなピンチで扱います. でも...

ANTLR 自体は DSL ジェネレーターではありませんが、DSL を解釈するコードの作成に使用できます。これはパーサー ジェネレーターですが、DSL ジェネレーターは、ANTLR がパーサーを生成するものを作成する必要があります。

于 2009-01-31T23:51:50.037 に答える