タグ付け済み:言語ワークベンチ
言語ワークベンチ:ドメイン特化言語のキラーアプリ?
ソフトウェア開発における新しいアイデアのほとんどは、古いアイデアの新たなバリエーションです。この記事では、その1つである「言語ワークベンチ」と呼ばれるツールのクラスに関する、成長しつつあるアイデアについて説明します。その例としては、Intentional Software、JetBrainsのMeta Programming System、MicrosoftのSoftware Factoriesなどがあります。これらのツールは、私が「言語指向プログラミング」と呼ぶ古いスタイルの開発を取り入れ、IDEツールを使用して言語指向プログラミングを現実的なアプローチにすることを目指しています。これらのツールが野望を達成できるかどうかを予測できるほど先見の明があるわけではありませんが、これらのツールはソフトウェア開発の未来において最も興味深いものの1つであると考えています。少なくとも概要として、それらがどのように機能し、将来の有用性に関する主要な課題は何であるかを説明するために、このエッセイを書くのに十分興味深いものです。
DSLのためのコード生成
ドメイン特化言語(DSL)を構築する場合、実行可能にするにはどうすればよいでしょうか。内部DSLの場合、これは簡単な質問です。なぜなら、それらは実際の言語に埋め込まれているからです。外部DSLはより多くの作業が必要です。ここでは、単純なDSLの例を取り上げ、そこからコードを生成するいくつかの簡単な方法を示します。
動作する言語ワークベンチ - MPS
言語ワークベンチを使用することは、従来のドメイン特化言語を使用することとは大きく異なります。これは、JetBrains Meta Programming System(MPS)を使用して、小さくても興味深いDSLを構築する例です。これを使用すると、言語ワークベンチを使用することの感触をつかむことができます。
言語ワークベンチとモデル駆動型アーキテクチャ
最近、複数のドメイン特化言語(DSL)を統合できるツールの開発が急増しています。私はそれらを言語ワークベンチと呼んでいます。言語ワークベンチに関する議論の多くは、オブジェクト管理グループのモデル駆動型アーキテクチャ(MDA)に関する議論と非常に似ています。私の見解では、MDAは人によって異なる意味を持ち、そのためMDAと言語ワークベンチの関係の見方にも影響を与えます。確かに、MDAのアイデアを使用して言語ワークベンチを構築しているMDAの実践者のグループがあります。しかし、私の感じでは、MDAが提供する助けはせいぜい部分的です。モデル駆動型開発(MDD)のより広範な学校では、MDA標準とのリンクなしに、これらのアイデアの多くが反映されています。これは、言語ワークベンチのアイデアと非常に合致するものです。
ドメイン特化言語に関するSE Radio Podcast
DSLに関する書籍に貢献したThoughtworksのCTOであるレベッカ・パーソンズと、マルクス・フォルタと話をしました。私たちは、DSLとは何か、内部DSLと外部DSLの違い、DSLを使用するべき時(そしてすべきでない時)について話します。
イラストレーションプログラミング
世界で最も一般的なプログラミング言語は何ですか?
言語ワークベンチ
言語ワークベンチとは、2005年に私が作った用語で、統合された複数のドメイン特化言語の豊富な環境を通じてソフトウェアを構築するように設計された、新しいクラスのソフトウェア開発ツールを表しています。これらのツールはまだ主流からかなり離れていますが、それらに関する開発は継続しており、興味深いものです。それらは、プログラミングの状況を大幅に変える可能性があると私が感じる数少ないものの1つです。
言語ワークベンチに関する参考文献
最近言語ワークベンチに関する記事を書いたとき、さらなる読書に関するセクションを私のBlikiに分離することにしました。新しいものが登場したときに更新を報告しやすくするためです。
モデル駆動型ソフトウェア開発
モデル駆動型ソフトウェア開発(MDSD)は、従来のプログラミングスタイルの代替案とみなされるソフトウェア開発スタイルです。このアプローチの中心は、ソフトウェアシステムのモデルを構築することです。これらのモデルは、通常、図解的な設計表記を通じて明示されます。UMLはその1つのオプションです。このアイデアは、これらの図を使用してシステムをモデリングツールに指定し、従来のプログラミング言語でコードを生成することです。