DLR(動的言語ランタイム)
先日初めてDLRを知って少し調べてみた。動的言語の共通基盤らしく、C#などの静的言語との連携をよりやりやすくするものらしい。独自のASTからDLR ASTへのmapperを作ることで簡単にCILコードを生成できるらしい。言語がより作りやすくなったということで、自分も俺言語を作ってみたくなった。とりあえず電卓プログラムから勉強してみようかな。
- NyaRuRuの日記: C#, DLR AST, meta programming (http://d.hatena.ne.jp/NyaRuRu/20080221/p1)
- 荒井省三のBlog: 簡単な言語の作り方
- 簡単な言語の作り方1 (http://blogs.msdn.com/shozoa/archive/2008/02/02/7383648.aspx)
- 簡単な言語の作り方2 (http://blogs.msdn.com/shozoa/archive/2008/02/03/7401868.aspx)
- 簡単な言語の作り方3 (http://blogs.msdn.com/shozoa/archive/2008/02/03/7407408.aspx)
- 簡単な言語の作り方4 (http://blogs.msdn.com/shozoa/archive/2008/02/04/7432482.aspx)
- 簡単な言語の作り方5 (http://blogs.msdn.com/shozoa/archive/2008/02/05/7459587.aspx)
- 簡単な言語の作り方-まとめ- (http://blogs.msdn.com/shozoa/archive/2008/02/17/7741759.aspx)
- SiroKuro Note: DLR で言語製作 (http://sirokuro.s206.xrea.com/?DLR%20%A4%C7%B8%C0%B8%EC%C0%BD%BA%EE)
DLRの重要性として例えば、C#をベースとしたアプリにIronPythonを組み込む場合、同じことはもちろんC++でもできると思うが、より簡単になり標準化されたということが非常に重要だと思う。言語の文法でもそうであるが、ある機能が、頑張れば何とかできるということと、簡単にできるということは全く違う。また、標準であることの力は大きい。共通基盤を作るということで、その上に乗っかっているライブラリなり言語なりアプリなりが、共通の基本機能を利用できるという仕組みは非常にメリットがありそう。ちょっと違うかもしれないが、今までリフレクションやC# 3.0のExpression Treesで頑張ればできたことが、DLRの機能を使ってもっと簡単にできるということは非常に大きいと思う。
10年後を考えるとC#をバリバリ勉強して自分のセカンダリ言語として習得したい。それぐらいの価値がありそう。もちろんPythonはプライマリ言語として勉強を続けたい。