DLRとASTやCOMなど
IronPython 2.0 A8で提供されているDLRを見ていると、IronPython 2.0A4の-X:PreferComDispatchがどのような機能として提供されているかに気が付くことができます。具体的には、上記のエントリーで私が「DLRにCOMサポートとしてのIDispachサポートが入って欲しいと考えています」と記載したことが、カスタムActionとして実装されていることです。Microsoft.Scripting.Actions.ComDispatchというネームスペースにCOMを扱うための振る舞いを提供するカスタムActionが提供されています。これが何を意味するかと云えば、言語実装者がCOMに対する振る舞いを追加したければ、このカスタムActionへマップすれば良いことを表しています。つまりIronPythonだけでなく、他の言語でもCOMオブジェクトを利用可能にすることができるインフラが容易用意されているのです。
簡単な言語を作るという一連のエントリの中で、言語固有のASTを作り、このASTをDLRのASTへマップすると説明しました。このDLR ASTのみを使った実験というものをNyaRuRuさんが紹介しています。NyaRuRuさんのエントリーもとても興味深いものです。
さてこのような動的言語のインフラを提供するDLRですが、来週には何らかの発表があると思います。というのもラスベガスでMIX08が開催され、Silverlight2.0Beta1が発表されるからです。このBeta1には、間違いなくDLRが含まれていますので、どこまでAPIが固まったのかなどの状況を知るのに有益な情報源になることでしょう。
それから1月に行われたLang.NET Symposium2008のストリーミングが公開されています。全てのセッションが公開されているわけでありませんが、興味深いセッションが沢山ありますので、是非ともご覧になってください。視聴には、Silverlightが必要になります。またRedmondの本社でIronRuby、IronPython、F#、DLRのエンジニアを募集しています。
#ちなみに私の英語力では、移住できないので、もちろん応募はできません。もう少し、英語力があればと思うこの頃です。
Comments
Anonymous
February 24, 2008
PingBack from http://www.biosensorab.org/2008/02/24/dlr%e3%81%a8ast%e3%82%84com%e3%81%aa%e3%81%a9/Anonymous
February 27, 2008
こんばんは。 DLRを使った大作、興味深く読ませて頂きました。 .NETの誕生から、DLRやCOMの対応を見ていると、「皆ともだち」というフレーズが頭に浮かんできます。 (や、個人的に そうあって欲しいという願望が大きいのですが) ・.NET:静的言語間で宗教戦争せずに、皆ともだち ・DLR:動的言語間で宗教戦争せずに、皆ともだち ・DLRのCOM:異なるGC間でいざこざせずに、皆ともだち ・.NETとMONO:異なるOS間で宗教戦争せずに、皆ともだち 「皆ともだち」と感じるのは、「互いが互いの成果を融通し合う事ができる」点からですかね。 この調子で、RING0とRING3も…というのは、欲張りすぎですね。Anonymous
February 27, 2008
有難うございます。 そうなって欲しいというのが、私の願望です。 基本的に戦争というか喧嘩だけでは、お互いに得るものがないので、進歩という意味では競争は大歓迎ですけど。 世の中には、様々な言語や実行環境が生存しているので、良いところは良いと認め合って手を繋ぐことができたら良いなーと思っています。 次回のエントリは、TreeCompilerを取り上げようかと思って調べ始めたところです。