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 を…

そろそろ本気で Java/Invoke の実装に移りたい件について(3)

そうか。Ruby だとメンバ変数名に @ を付ける制約があるから、上手いことバッティングしないのか。

そろそろ本気で Java/Invoke の実装に移りたい件について(2)

そういえば、Ruby もメソッド呼び出しの括弧を省略できるんだよな。JRuby だと同名のメンバをどうやって処理しているんだろう……。 理想は obj = new Frame; obj setTitle: "kuzha frame"; obj show;なんだけど、同名メンバを処理する上手い方法が見つからな…

そろそろ本気で Java/Invoke の実装に移りたい件について

ところで、Java だとフィールド名とメソッド名に同じ名前を付けたりすることが可能なんだけど、それだとフィールドもメソッドも全てスロットとして処理する kuzha からは区別できないよね、と思った。 同じスロットタイプでも、Jython なら変数参照と関数呼…

kuzha が生成するバイトコードを覗いてみる

最後。現在の 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();…

jython が生成するバイトコードを覗いてみる

調子に乗って 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インタラクティブ…

C# のコンパイラコンパイラ

id:jonigata なんとなく発見

pnuts が生成するバイトコードを覗いてみる

とりあえず 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…

Fib ベンチまとめ

処理系 実行時間 pnuts 0.2s Jython 1.5s kuzha 2.1s Rhino 14.6s *1 まだまだ kuzha も改善できそうな予感です。 *1:おそらく JIT 無し

Pnuts でも Fib ベンチ

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 …

Jython でも Fib ベンチ

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, …

Rhino(jrunscript) でも Fib ベンチ

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ミ…

自分のはてブランクがどれくらいか気になって調べてみた

今日の時点でのランキングは……

Fib のベンチマーク

http://d.hatena.ne.jp/nagashimatena/20080215#p1 で面白そうなことをやっているので、kuzha でもやってみた。関数を与えると、その関数を実行して実行時間 ms を返す関数 bench をでっち上げて…… ku> fib = ^x (x <= 1 ? 1 : (fib: x - 1) + (fib: x - 2))…

ココロヽ(≧∀≦)ノ

Type と Delegate

C#

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)/『実名制』のレベル分け

これを見て、何度目かの論点整理を行ってみる。*1 現状の問題点 小倉先生が問題としていることは2点。 ISP や ASP が、故意に発信者情報を隠すという事例 匿名性による安心感から、発信者が過激な発言を行いやすくなっている現状 枝葉はともかく、大筋だけ…

ミク時計

こんなの作ってみました。製作時間は3分30秒です

ライツアウト

もう一個。今度はライツアウト。製作時間は同じく3分30秒ですです。

ave;new から

なぜか連絡が来ませぬ。通販したのに音信不通。

とりあえずエントリーしました

アホの子 SiroKuro が何か話します。 話す内容の候補 DLR とか JSR223 とか 動的言語とのインタフェイスについて 俺言語製作とかのアレについて プログラム意味論関係 操作的・公理的・表示的(勉強が間に合えばゲーム意味論も?) 何話そうかなぁ……

知り合いでスマブラX買った奴が5人もいるよ……。羨ましい。

新しくプログラム言語を習うときの練習問題

新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEA 10個も要らないような気がする。 「hello world!」を出力 小さなプログラムをまずは作ってみよう FizzBuzz 問題 条件分岐とループを押さえよう たらいまわし関数 関数について…

PCF で階乗計算

自分用メモ。わかりにくいので 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…

IE のクセ。Firefox のクセ。

↓これと <script language="javascript" src="hoge.js" /> ↓これが <script language="javascript" src="hoge.js"></script> IE で見たときに違いがあるなんて、これなんてトラップ? 始末の悪いことに Firefox だと違いがないんだよね……。気づかなかった orz

部屋の中に堆く詰まれたエロ漫画を処分しないと、地震のときに頭の上に崩れてきて死んでしまう。

Game Semantics

日本語の良い文献ってないかなぁ。 無ければ自力調達しなくちゃいけないか。