Re: ん?

javascriptってfor文がスコープ作らないってこと?

http://d.hatena.ne.jp/nagaShima/20090119/p3

というより var 宣言された変数が全部メソッドスコープにバインドされちゃうという感じです。
kuzha も同じように、変数テーブルは今までメソッド1つにつき必ず1つだったので、下のようなコードが動いちゃってました。

for i in 0..9 do
    ;
end
i puts;    // -> 9

ついで

調べようとしてKuzhaのコード見てビビッた。なんであんなに小さく出来るの?

http://d.hatena.ne.jp/nagaShima/20090119/p3

幾つかポイントがありまして、

  1. 型情報などは一切扱わない
  2. kuzha の挙動を決定する CodeGenerator.java にカオス度が集約している
  3. kuzha で書けるコードは、java でも同じくらいの長さで書ける
for i in 0..9 do
    i puts;
end
for(KuzhaObject t: KzList.newRange(0, 9)) {
    local.setSlot("i", t);
    KuzhaObject obj = local.getSlot("i");
    Operator.getSlotValue(obj, "puts").call(obj);
}

などなど。
自分はあまり大規模なプログラムを組んだことが無いので、必然的にあまり複雑な機能を持たないプログラム言語 (=kuzha) が出来た、という仕組みなわけです。