※ IronPython Beta2 を元に記述。
DLR には Well Known Language という概念が(少なくともコード上には)あり、IronPython、JScript、Visual Basic、IronRuby、そして ToyScript がそれにあたる。詳細は、Microsoft.Scripting.Core の Microsoft.Scripting.Hosting.LanguageProviderSetup クラスを参照。
ToyScript とは、DLR で実装したサンプル的な簡単スクリプトという位置付けだと思われる。言語仕様がかなりチープなので、実装は単純。DLR の解析を行う取っ掛かりとしては最適だろう。
IronPython Beta2 には ToyScript の実装コード、テストコードがある。以下はテストコード。
import System
x = 2*5
x+2
y = 64/2
x+y
dt = System.DateTime
dt.Now
dt.Now.Year
m = System.Math
m.PI
m.Sin(2)
i=0
while i < 10 {
i = i + 1
if i > 8 { System.Math }
}
if (i > 5) {
42
}
def f() {
return 111;
}
print f()
現時点で、ToyScript について分かる事は、
- 四則演算ができる。
- 制御構造があり、括弧を付けても付けなくとも良い。
- メソッド呼び出しに 括弧を付けても付けなくても良い。
- 全体的に C 言語系の構文。
- メソッドの定義は「def」。
- print というステートメントがある。
- 型自体を変数に入れられる(dt = System.DateTIme)。
という事ぐらい。次からは ToyScript を拡張しながら DLR の理解を深めていく。