2008-02-01から1ヶ月間の記事一覧
ku> this.fib = ^x (x <= 1 ? 1 : (fib: x - 1) + (fib: x - 2)); > for i in [0..9] do > puts: (bench: ^(fib:30)); > end > 1476 1396 1390 1386 1387 1386 1399 1384 1392 1397this.fib に入れたところ 1.3 秒代で実行できるようになりました。Jython を…
そうか。Ruby だとメンバ変数名に @ を付ける制約があるから、上手いことバッティングしないのか。
そういえば、Ruby もメソッド呼び出しの括弧を省略できるんだよな。JRuby だと同名のメンバをどうやって処理しているんだろう……。 理想は obj = new Frame; obj setTitle: "kuzha frame"; obj show;なんだけど、同名メンバを処理する上手い方法が見つからな…
ところで、Java だとフィールド名とメソッド名に同じ名前を付けたりすることが可能なんだけど、それだとフィールドもメソッドも全てスロットとして処理する kuzha からは区別できないよね、と思った。 同じスロットタイプでも、Jython なら変数参照と関数呼…
最後。現在の kuzha が生成するバイトコードを逆コンパイルヽ(≧∀≦)ノ fib = ^x (x <= 1 ? 1 : (fib: x - 1) + (fib: x - 2));public KuzhaObject exec(KuzhaObject _this, KuzhaObject locals) { if (locals == null) throw new IllegalArgumentException();…
調子に乗って jythonc のほうも見てみました。どうやら jythonc だと途中で java ソース生成するので見るのは楽です。 def fib(x): if x <= 1: return 1 else: return fib(x - 1) + fib(x - 2) private static PyObject fib$1(PyFrame frame) { if (frame.ge…
だいたい 1.5 秒で実行できるようになりましたヽ(≧∀≦)ノ ku> fib = ^x (x <= 1 ? 1 : (fib: x - 1) + (fib: x - 2)); > for i in [0..9] do > puts: (bench: ^(fib@void: 30)); > end > 1515 1425 1434 1434 1445 1448 1432 1455 1438 1437インタラクティブ…
id:jonigata なんとなく発見
とりあえず pnutsc して javap して手作業で逆コンパイルしちゃった(^-^;; function fib(x) { return x <= 1 ? 1 : fib(x - 1) + fib(x - 2) }import pnuts.lang.Runtime; import pnuts.lang.Context; protected java.lang.Object exec(Object[] args, Conte…
処理系 実行時間 pnuts 0.2s Jython 1.5s kuzha 2.1s Rhino 14.6s *1 まだまだ kuzha も改善できそうな予感です。 *1:おそらく JIT 無し
Pnuts 1.2.1 でも Fib ベンチをやってみました。参考 > function profile(f) { > function(args[]) { > t = currentTimeMillis() > r = call(f, args) > println(currentTimeMillis() - t) > r > } > } function profile(f) > function fib(x) { > return x …
jython2.2.1 でも実行してみたよ。 >>> import time >>> def fib(x): ... if x <= 1: return 1 ... else: return fib(x - 1) + fib(x - 2) ... >>> def foo(): ... start = time.clock() ... return fib(30), time.clock() - start ... >>> foo() (1346269, …
JRE6.0 付属の jrunscript な Rhino*1 で Fib ベンチを実行してみた。 js> function fib(x) { return x <= 1 ? 1 : fib(x - 1) + fib(x - 2); } js> (function(){ var start = new Date(); fib(30); return new Date() - start; })(); 14641.0 結果、14641ミ…
今日の時点でのランキングは……
http://d.hatena.ne.jp/nagashimatena/20080215#p1 で面白そうなことをやっているので、kuzha でもやってみた。関数を与えると、その関数を実行して実行時間 ms を返す関数 bench をでっち上げて…… ku> fib = ^x (x <= 1 ? 1 : (fib: x - 1) + (fib: x - 2))…
Type.IsClass は「class」「struct」「delegate」のとき true struct は、つまり System.ValueType のサブクラス delegate は、つまり System.Delegate のサブクラス Type.IsInterface は「interface」のとき true Type.IsEnum は「enum」のとき true Type.I…
わあいヽ(≧∀≦)ノ!*1 *1:暴動が起きそうな気がする。色んな意味で
実社会の本質だと思うと、なんとなく感慨深いです。 被害者から要請されても発信者の氏名等は秘匿しておきました」なんて対応をしたら、その企業自体が不法行為責任を負います。 誹謗中傷か否かを判断する能力は民間企業にもある。: la_causette 問題となり…
これを見て、何度目かの論点整理を行ってみる。*1 現状の問題点 小倉先生が問題としていることは2点。 ISP や ASP が、故意に発信者情報を隠すという事例 匿名性による安心感から、発信者が過激な発言を行いやすくなっている現状 枝葉はともかく、大筋だけ…
こんなの作ってみました。製作時間は3分30秒です
もう一個。今度はライツアウト。製作時間は同じく3分30秒ですです。
なぜか連絡が来ませぬ。通販したのに音信不通。
アホの子 SiroKuro が何か話します。 話す内容の候補 DLR とか JSR223 とか 動的言語とのインタフェイスについて 俺言語製作とかのアレについて プログラム意味論関係 操作的・公理的・表示的(勉強が間に合えばゲーム意味論も?) 何話そうかなぁ……
知り合いでスマブラX買った奴が5人もいるよ……。羨ましい。
新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEA 10個も要らないような気がする。 「hello world!」を出力 小さなプログラムをまずは作ってみよう FizzBuzz 問題 条件分岐とループを押さえよう たらいまわし関数 関数について…
自分用メモ。わかりにくいので kuzha のプログラムも併記 加算関数 μ add:num->num->num. λ x:num. λ y:num. if iszero(x) then y else ((add pred(x)) succ(y))add = ^x y (x == 0 ? y : (add: x - 1 y + 1))乗算関数 (λ add:num->num->num. μ mul:num->num…
↓これと <script language="javascript" src="hoge.js" /> ↓これが <script language="javascript" src="hoge.js"></script> IE で見たときに違いがあるなんて、これなんてトラップ? 始末の悪いことに Firefox だと違いがないんだよね……。気づかなかった orz
部屋の中に堆く詰まれたエロ漫画を処分しないと、地震のときに頭の上に崩れてきて死んでしまう。
日本語の良い文献ってないかなぁ。 無ければ自力調達しなくちゃいけないか。