2003-11-18 (Tue) [長年日記]
_ Centrino under Linux
CentrinoのLinuxサポートをIntelに求める署名をした。
_ インデント幅
昔rubyでコードを書く時のインデント幅を3にしたいた理由が思い出せなかったのだが、 Satherの影響のような気がしてきた。
_ イテレータの動的分配
Satherコンパイラで イテレータの動的分配ができるようになった。
abstract class $TIMES is times!(once n: INT): INT; end; class TIMES < $TIMES is create: SAME is return new; end; times!(once n: INT): INT is i ::= 0; loop while!(i < n); yield(i); i := i + 1; end; end; end; class MAIN is main is t: $TIMES := #TIMES; loop i ::= t.times!(3); #OUT + "i=" + i + "\n"; end; end; end;
_ parameterrized type
どういう実装にするのかが悩ましい。
内部的には全部System.Objectにして、INTとかはboxingすればいいかなとも思ったけど boxingのオーバーへッドが気になるところ。 あと、.NETの配列をどういう扱いにするかって問題もあるし。
といって、パラメータとして与えられた型毎にクラスを作るのも、生成したクラスをどの アセンブリに含めるかが悩ましい。
C#で実装されるのを待つか…。