[dlr]OSC2007 FallでDLRを説明させていただきました


オープンソースカンファレンス2007 Tokyo/Fallが開催されています。今回は、DLRに関して説明をさせていただきました。ご参加した方々、私の話を聞いてくださいまして有難うございます。スタッフに資料は渡しましたので、その内に公開されると思いますが、念のためこのエントリに添付させていただきます。
説明の使った資料のPDFデータとIronRubyでデモに使用したサンプルコードを入れています。参加された方から、「実装言語のオブジェクトがDLRを介して全てを利用できるのか?」というご質問をいただきました。確かに、言語実装者がDLRを介して公開できるように実装しなければ、その言語内に閉じたオブジェクトになります。DLRでは、SymbolicDictionaryという辞書でオブジェクトへのポインタを管理しています。この辞書からオブジェクトのポインタを取得して、プロパティやメソッドを持っているかを問い合わせします。持っているという返事を貰った場合に、Invokeするという仕組みを採用しています。この問い合わせに答えない実装もあります。事実、IronRubyではメソッドやクラスはIronRubyのRuntimeの中に閉じていまして、外部からは使うことができます。現状のIronRubyの実装では、変数や.NET Frameworkのライブラリのインスタンスが、DLR上のファーストオブジェクトとして扱われています。この機能を使ってIronRuby側でWindows Formsのインスタンスを作成して、IronPythonでそのオブジェクトを操作するというデモを行いました。この辺りは、言語実装者がオブジェクトなどをどのようにDLRに公開するかにかかっているのだと思います。この意味では、Managed JScriptは、IronPythonにかなり近い実装方法を取っていると考えられます。このために、DLR Consoleで双方から自由にオブジェクトを操作できるようになっています。


追記:添付のPDFの中に「マル秘」となったスライドが1枚だけあります。これは参加された方たちだけが知っている内容になりますので、ご容赦ください。
追記:PDFのつもりが間違っていました。ファイルは差し替えています。既にダウンロードされたかたは、Copyright表記に従って、ご利用くださいませ。

OSC2007.zip

Skip to main content