*目次 [#ofb6c241] #contents *趣旨 [#iccbdb00] インテンショナルプログラミングについてメモ。 *インテンショナルプログラミングとは [#s14d3ef3] たとえば銀行の業務など、業界の固有知識のことをドメインとここでは表現するのですが、 そのドメインに対する知識を、普通のプログラムとは分けてライブラリを作っていく方法論です。 *歴史 [#u607c2c7] インテンショナルプログラミング(略してIP)はCharles Simonyiが1990年代初期から進めてきた考え方です。 Charles Simonyiはマイクロソフトを退社して、会社を立ち上げました。 下記のKnowledge Workbenchという開発環境を開発しました。 **Knowledge Workbench [#c4f83668] http://www.intentsoft.com/intentional-technology/ http://www.intentsoft.com/overview/case-study-financial-services/ **論文 [#wbb90428] http://camlunity.ru/swap/Library/Computer%20Science/Fundamental%20Innovations/The%20Death%20of%20Computer%20Languages.%20The%20Birth%20of%20Intentional%20Programming.pdf *書籍 [#c3433fdd] この文章を書いている現時点では日本にはこの概念についてのわずかな書籍がありません。 ジェネレーティングプログラミング ISBN978-4-7981-1331-9 第11章に記述があります。 **書籍のURL [#i3bc5b49] http://www.generative-programming.org/ *特徴 [#s30257b5] -仕様書をプログラムで扱える形式で記述する。 -プログラムで扱える形式とはソースグラフと呼ばれます。 -ソースグラフから、コードを生成する仕組みをリダクションと呼びます。 -仕様書、ソースグラフ、そして最終コードまでが、双方向に変換可能になっている --最終コードのデバック情報をもとに元のコード、つまり、ソースグラフ、仕様書の逆算がしやすくなる利点があるようです。