Entries from 2007-12-01 to 1 month

2007年振り返り

今年は楽しく充実した後半しか印象に残っていないが日記を読み返して振り返る。 Mona リポジトリにに対するコミットは 873回 で1位(行数はどうすれば分かるんだろう?) 2位 は id:shotaro_tsuji さん みなさん来年もよろしくお願いします デジタル一眼レフ…

最適化第1段 - Scheme VM を書く

今日やったこと expand-code => alpha-reduction => normalize => beta-reduction => eliminate を wiki のコードに適用してみた。 optimize に必要な時間は換算せず前後で実行時間は Gauche でも自前 VM でも変わらず。これで意味はないのでもう少し踏み込…

砧公園

先日砧公園に行ったときのこと。広さのわりに人がまばらで気持ちよく黙々と写真を撮っていた。すると公園巡回員の方に「何の写真を撮っているの?」と話しかけられた。元プロカメラマンのおじさんで色々教えてもらった。

E

論文を読んでいると意味が分からない部分の方が圧倒的に多い。頭がヒリヒリしてきて「いーっ」となる。どうしても数式よりもコードを見てしまう。証明部分をスルーしてしまう。スルーすると次の文章が突然飛躍したように見える。ますます理解できなくなる。…

A正規化(A-normalization)と CPS変換 - Scheme VM を書く

ここに書いてある内容は古いです。A正規形まとめをご参照ください。 The Essence of Compiling with Continuations を読んで理解したことをまとめた。僕は専門家でないので間違いが含まれている可能性があることに注意。 CPS CPSの特徴はすべての手続きが継…

うっとりと花柄

隣の席の女性が本を読みながらうっとりしてる。うっとりしている女性を見るのは久しぶり。微笑みともに気に入った文章にときおり線を引いている。本のタイトルがどうしても知りたかったが黄色い花柄のカバーに阻まれた。

A正規化 => β簡約 => 不要定義削除 - Scheme VM を書く

まずは理解を深めるために手で A正規化 => β簡約 => 不要定義削除をして見る。 もし間違いを見つけたらぜひご指摘ください_(__)_。(合っているかとても不安) ;; 元のコード あまりに都合の良いのは気のせい (let ([x 1]) (let ([a (let ([b x]) (+ b 1))])…

おや?

珍しく寝れないので某資料を眺めていたらCPSやらCPS変換が分かった気がする。頭に絵が浮かんだ。あと closure 変換はやはりdisplay closure と同じだと思う。ということで明日(今日?) CPS変換やってみる? それにしても最適化の前の中間表現としてCPSを選ぶ…

scheme->c

Marc Feeley氏のThe 90 minute Scheme to C compilerという資料が面白かった。 動画は見てない。

クロージャ変換て

Display closure と同じようなものという理解でよいのかしら。 ネストしたクロージャをフラットにするという意味で。

fread周り - Mona OS で ゴー?

cc1.exe, cc1plus.exe, cpp0.exe の動作を確認。 fread 周りの修正を反映しました。→id:h0shuさん、id:shotaro_tsuji 修正OK http://d.hatena.ne.jp/h0shu/20071222/p2 http://d.hatena.ne.jp/h0shu/20071223/p2 どうします? http://d.hatena.ne.jp/h0shu/2…

こんどこそ今年最後のプール

砧公園近くのプールへ。2回目。50mプールがあるので体にかかる負荷が違う。プールだけでなく建物自体も広く天井が高いので解放感がある。1人あたりに割り当てられた空間の広さが安心と喜びを生む。 区の施設としてプールのクォリティは 世田谷区 > 渋谷区 > …

A-Normalization / A正規化 - Scheme VM を書く

ここに書いてある内容は古いです。A正規形まとめをご参照ください。 Gauche VM が採用している IForm という中間表現は A-Normal Form(A正規形)を拡張したもの。A-Normal Form を学んでみる。 The Essence of Compiling with Continuations という論文を読…

もやもや

CPS変換とA正規化の違いが分からない。 資料をオフラインに集めてスタバで吸収の予定。

晴れ

毎日スタバへ向かう途中に見上げてる。

だいありー

最近重い?

スプートニクの恋人

村上春樹のスプートニクの恋人を読み返す。目の前にすみれがいて自分が苦悩しているかのように感じられる。今年読み返して良かった本No1。 次はねじまき。

コンパイラ/VM 書き直し - Scheme VM を書く

Gauche で動く コンパイラ/VM の書き直しが終わった。 昨日の時点で難しい局面を越えていたので、今日はテストが通るように Instruction の追加などを行った。 ちなみに Gauche上ので新旧VMで Wikiのコードを動かしたが 350ms -> 250ms とかなり速くなった。…

中間形式はどういうのが良いのだろうか - Scheme VM を書く

最適化をまじめにやるために、土台作りを進めてきたわけだがコンパイル時の中関形式はどういうのが良いのだろうか。 Gauche は IForm というのを使っていて We first convert the program into an intermediate tree form (IForm), which is in principle si…

スケジュールの日付の枠

手帳のスケジュールの特定の日付の枠いっぱいに手描きハートマークがあるのが見えた。見ようと思って見たのではない。 幸せそうな人が世の中に多いことは良いこと。

反省

今日はがんばりすぎた。このペースはさぼりすぎと同じくらいよくない。

Hybrid EXE

Windows と Mona で Hybrid EXE - きまぎらすほしゅの不定記すごご。その発想はなかった。 これはゆにばーさるばいなりですね(違

A Normal form?/A正規形?

ここに書いてある内容は古いです。A正規形まとめをご参照ください。A正規形で検索した方が良さそうということに、sumiiさんの日記をさまよっていたら分かった。と思ったけどヒットする件数は少ないな。 だんだんと日本語の資料が少なくなってきたということ…

レポジトリに追加した- Mona OS で ゴー?

id:h0shuさんのアドバイス通り、*.obj がドライバ用、*.o が gcc 用と分かれているので include path を変えてやるのが正解でした。 うまくいったので整理して contrib に追加しました。(これはもうほとんど id:h0shuさんの成果) Linux + Mingw な人は mon…

コンパイラ/VM 書き直し その4 - Scheme VM を書く

quote のコンパイル対応 VM が ASSIGN_FREE に対応 display closure に Gauche native 手続きを指定し apply 可能に number?, cons +, >, =, Pair 関連の Instruction に対応 if, begin の tail context に対応 letrec に対応

Common Lisp って Scheme よりいい感じ? - from comp.lang.scheme

comp.lang.scheme より。 why do people use scheme if it seems to be a limited common lisp? Common Lisp は On Lisp とポールグレアムの文章でしか触れたことがないので分からないね。 C++ を引き合いに出して、Common Lisp も同様に "big" language だ…

止まる - Mona OS で ゴー?

drv_stdc.c:10: error: redefinition of typedef 'GO_FILE' ../include/stdio.h:17: error: previous declaration of 'GO_FILE' was here まずはコードを見てみる。 drv_std.c #include <stdio.h> /* fopen, fclose, fread, fwrite, fseek, ftell, NULL */ #include <stdlib.h> </stdlib.h></stdio.h>…

十二月大歌舞伎 千秋楽

銀座歌舞伎座で十二月大歌舞伎の千秋楽を楽しんだ。 歌舞伎は2回目。初めて見たのは浅草だった。後から知ったのだが浅草は若手のチャレンジの場の側面があり、一方歌舞伎座では円熟の演技が見られるのだ。今回は平日に時間がとれ千秋楽夜の部を見られるとい…

まつもと×笹田、Ruby 1.9を語る

そういう意味ではRuby全体を見ているコミッターは5〜6人でしょうか。うぉ。まじか。そうなのか。そうだよな。 安心した。 多言語化です。まず前提として、Rubyのポリシーに「内部コードを持たない」というのがあるんですね。内部に特定の文字コードを採用し…

GOで気づいた

Linux上だと go_lib00 などを Linux向けにコンパイルしないと行けないのだな。うー。