2008-03-01から1ヶ月間の記事一覧
グラフにしてみました。 緑 インデックス単位アクセス 赤 最初にWideStringに変換*1 青 文字単位アクセス 処理としては、ランダムに生成した文字列からアルファベットの'A'数えているだけです。あんまり複雑なことする気も無かったし手頃な例思いつかなかっ…
http://ryg.cc/ 素晴らしいと思うべきか、こんなもんが必要な世界になったと思うべきか。
そうやってデータ取って弾き出された理想の配列evolvedのページが移動していました。消えたと思って焦った。日本語配列で同じことやるとしたら、データは、ミリ秒単位の打鍵間隔の他に、そのときのIMEの状態なんかも要るでしょうか。これも気が向いたらやり…
色々裏切った。 懺悔を書こうとしたら、丁度プロバイダの料金未納で繋げなかったため、私は今もこうして生きている。
Cryoliteさんに先にやられた。いやその、ずっとサンデーを買っていたのですが、先々週あたりからついにチャンピオンに手を出してしまいました……。 今は、N極バリアは何ガウスぐらいあれば実現可能か気になって仕方ないです。 重力と振り下ろす力に対して、反…
最初に言っておく。 面倒事に巻き込まれたくないので参考URLとかは一切出さないことにします。
予想通りにMakefile.ntがまるでメンテされて無くて笑っていいのか泣いていいのかでしたが、とりあえず.ntのつかない方からコピーしてあれこれしてたらhttp://d.hatena.ne.jp/shinichiro_h/20060918#1158547913は動きました。 #load "gcamllib.cma";; type a …
http://web.yl.is.s.u-tokyo.ac.jp/~furuse/gcaml/ 当然トップレベルと同じ出力が得られるGprintなるものもある。RTTIがあるということは、効率さえ気にしなければ型情報をMapに突っ込んでHaskellの型クラスモドキもできるわけですから、もうなんでもありで…
caperのサンプルのemptyなんとかを-d付けて渡すと落ちる。-c++だと落ちない。誰だよDジェネレータ書いたの。 後で直す。 追記。C++Builder11ではreleaseで再現、debugビルドだと再現しない……。
http://panathenaia.halfmoon.jp/alang/castling.html とりあえず当初の目的としては使える程度にはなったと思う……。 実はfirst-set作るところがバグってたりしたので、もっとテストケースが必要なのでしょうけれども。 コード自体もいくらOCamlと言ってもち…
http://code.google.com/p/deriving/ deriving (Show)サイコー。 他にも色々用意されてます。展開後のソースに対して警告出されるのが若干気になりますが、まあいいか。 あとは、専用のcompareが用意されている型についてはそれ使ってくれてそれ以外はPervas…
何が言いたいかというと、OCamlは言語仕様そのものが凄いてきとーな為、てきとーにしか書きようが無いのが素晴らしい。その点「え」の付くなんとかは効率追求ができてしまう言語仕様の癖にランタイムがlibcの上に乗ってて無駄にg++とABI互換でコンパイラに足…
caperのソースを見るに、「真面目にSTLやなんかにインターフェース適合させて効率や可視性に気を遣って書いたC++」と「適当に書いたC++」の乖離は酷過ぎるのではないかと思うこの頃です。 で……caperのソースは物凄い真面目に書かれていると思うのですが、真…
ま〜,少なくとも move semantics なんて値 (のコピー,もしくは箱モデル) をベースとする C++ 独特の概念だよにぇ〜.だから面白いとは思うんだけれど.他の言語においては参照 (名札モデル) をベースとするのが主流で,この概念は恐らく存在意義すら無いは…
前回、 START ::= A * B D | A * C Dの状態でDが来たらBとCのどちらを補うかなんてのは迷いますが、どの道エラーリカバリですので適当にどっちか選ばれるようにしとけば問題ないと思います。recovery/recovery conflictなんてのは聞いた事が無いですし。 と…
かろうじて動くようになりました。http://panathenaia.halfmoon.jp/alang/castling.7zAST自動生成型のパーサジェネレータです。 奇跡的にLALR(1)のパーサを吐きます。 LR(0)項の集合そして状態遷移テーブルを作る超肝心の部分はcaperの丸写しです。従ってラ…
例えばこういう処理があるとします。 List.iter (fun i -> print i) a aには番兵xが含まれておりそこに来たら中断したいとします。 exception Break;; try List.iter (fun i -> if i = x then raise Break else print i) a with | Break -> () これは正気の…
やってみたら簡単でした。 h2reg -u h2reg.iniの中のなんだかそれっぽい行を適当にコメントアウト h2reg -r .NETのヘルプ外すだけでだいぶ軽くなります。量が凄かったからなあ。 [Reg_Plugin] ;<nsName_Parent>|<HxT_Parent>|<nsName_Child>|<HxT_Child>|<HxA_Child> ;MS.VSCC+|_DEFAULT|hw.h2reg|_DEFAULT|COL_Master.HxA ;b</hxa_child></hxt_child></nsname_child></hxt_parent></nsname_parent>…
早速ビルドした。 http://panathenaia.halfmoon.jp/alang/gcc-private-build/ ちなみに、最初aaacafeでクロスコンパイラを作ってからずっとfreebsd4にしてたんですけど、さくらは実はfreebsd6だったため、6にしました……。 こうやって公開してると月に数件は…
http://www.eclipse.org/downloads/ すばらしそう。Java抜きEclipse。どうせならC/C++も抜いてください。 最近は何でもEclipseですからマイナー言語のプラグイン入れるの前提で空Eclipseの配布は無いでしょうか。
https://libre2.adacore.com/ すばらしそう。AonixのADTもありますのでEclipseのAda環境が2種類になりました。 最近は何でもEclipseですね。
http://ocaml.eclipse.ortsa.com:8480/ocaide/ すばらしそう。まあどうせデバッガはWindowsでは(Cygwin以外)動かないのでしょうけど。 最近は何でもEclipseですね。
LALR(1)はどうやって動作しているのでしょうか? 理解を完全にするために、caperの吐いたコードを追いかけてみたいと思います。 caperは、jonigataさんの作られたパーサジェネレーターです。パーサジェネレータの中では群を抜いてきれいなコードを吐いてくれ…
あんだけ進めといてアレなのですが、方針転換します。パーサジェネレータ作ります。 OCamlのコンパイラが吐くエラーメッセージは正気とは思えないため、最終的に使う言語自身で書いたほうがパーサジェネレータ用の間に合わせの構文よりも嬉しいというパーサ…
LLとか言われても「再帰下降」、LALRとか言われても「表引くやつ」と言い直さないとぴんと来ないのでまとめる。あるごりずむ LL……トップダウン LL(1)……JavaCC他、手書きできる LL(k)……ANTLR他、手書きできる 再帰下降+バックトラック……Parsec*1他(たぶんREBO…
http://dn.codegear.com/article/37542/ リリースノートはあるのに実体がRegistered Users Siteに無いです。 初めてCheck for Updatesを起動してみたら、ありました。 Feb08 Help IMPORTANT: Please view the following URL before installing this help upd…
OSASKの河合さんがおられました。OS本持って行くべきだった! ずけずけとテキストエディタ見せてと頼んだら、漢字変換からロケールの切り替えまでデモしてくださいました。ありがとうございますです。 その時配られたビラでtekという圧縮形式を知りました。 …