2005-08-01から1ヶ月間の記事一覧

SParser-2.2 released

大きな進展はないが、しばらくいじれないので修正版を公開しておく。 ファイルport、文字列portの実装(一部)と、defineの仕様を勘違いしていた*1ことの修正がメイン。インタプリタ方式で作り始めたけど、効率のためだけでなく文法の面からもコンパイルは必要…

借りたビデオ

機動戦艦ナデシコ Vol.2 asin:B00005F9MN リング 完全版 asin:B00005H3LB 観てる暇あるのか? という気がしないでもない。

観たDVD

踊る大捜査線 Vol.1 asin:B00005HQVH アルジャーノンに花束を Vol.1 asin:B00007JMOB 演出がカチッと決まっていて格好いい『踊る〜』。織田裕二演ずる青島刑事の不遜な態度にはちょっと嫌味を感じてしまったが、多分それも計算済みだろう。本格的に面白くな…

読んだ本

初恋マジカルブリッツ いいからあたしに恋しなさい! / あすか正太 ISBN:4086302500 どうなんだろう。面白くないわけではないんだけど、このままではダメだと思う。今回祈梨の出番がほとんどなかったわけだが、ただでさえ可愛くて純粋でしかもダメな主人公の…

継続渡しとコンパイル(2)〜末尾再帰の場合

前のエントリでループの度にヒープにクロージャを生成しているのが無駄だと思う人がいるかもしれないが、それは例に挙げた関数が末尾再帰になっていないからだ。継続渡しは末尾再帰の時に最も真価を発揮する。 というわけで階乗計算の末尾再帰版。 (define (…

継続渡しとコンパイル

実装はまだ先だが、継続渡しに変換してからコンパイルする方法がなんとなく分かった。 継続渡しへの変換 継続渡しへの変換は、簡単な例で示すと以下のようになる。 次の式を評価するためには、まず(g)を評価して、その戻り値を使って(f # x)を評価する。 (f …

日経ソフトウェア2005年10月号「Javaで作るオリジナル言語〜やさしいLispインタプリタの作り方」

特集「究極のプログラミング体験 プログラム言語を作る!」の中の一記事。今日立ち読みして知った。掲載されたプログラムはWebページからダウンロード可能。 日経ソフトウエア 2005年10月号目次

買った本

よつばと! 4巻 / あずまきよひこ ISBN:484023163X

The Super Programming Technique

Lesson 1. ラムダ式をC++で実現する【前編】 Lesson 2. ラムダ式をC++で実現する【中編】 Lesson 3. ラムダ式をC++で実現する【後編】 C++のテンプレートを使ってlambda式を実現するという記事。やねうらおさんによる。

Java/C#でScheme/Lispを作っている人たち

リファラより。 diary - Discommunicative id:kilrey 短期間にこれだけ被るというのも珍しいな。これがシンクロニティというやつか?以下ははてなブックマークSchemeタグで見つけたもの。 ひらっちblog: Schemeコンパイラ: auseil やさしい Lisp の作り方 by…

買った本

吉永さん家のガーゴイル(2) / 田口仙年堂 ISBN:4757717881 初恋マジカルブリッツ いいからあたしに恋しなさい! / あすか正太 ISBN:4086302500

読んだ本

吉永さん家のガーゴイル / 田口仙年堂 ISBN:4757717016 ひとことで言って変な話。話の筋からするとなくてもいい余計な要素がいっぱいあるのに、不思議と無駄な要素というものがない。明らかに、最初にストーリーから考えたのではなく、世界を作ってキャラク…

買ったパーツ

PC

Pentium4 3.0GHz Prescott (中古) AOpen s661FXm (中古) AOpen i915Gm-PL 安かったからって中古のPrescottなCPUとマザーボードを買ったら、どうやっても動かない。BIOSまでは起動して、ディスク類もちゃんと認識するのに、ハードディスクからもフロッピーか…

Jatha - LISP Library in Java

http://jatha.sourceforge.net/ Jatha is a Java library that implements a fairly large subset of Common LISP. おお〜。Common Lispだから継続はないのか。でもコンパイル機能は多分あるだろうな。

SParser-2.1 released

http://fhuman.esys.tsukuba.ac.jp/~nozom/SParser-2.1.zip変更点は、 終端文脈で無駄な継続を生成しないようにした read, writeを実装した 有理数(分数)に対応した GUIに入力履歴が付いて若干使いやすくなった その他バグ修正多数 例によってドキュメントも…

借りたDVD

DVD

踊る大捜査線 Vol.1 asin:B00005HQVH アルジャーノンに花束を Vol.1 asin:B00008BDIZ これだけ見るとユースケ・サンタマリアのファンみたいだな。

買った本

Harry Potter and the Half-Blood Prince / J.K. Rowling ISBN:0747581088 詳解RSS - RSSを利用したサービスの理論と実践 ISBN:4886487467 二階の妖怪王女 / あらいりゅうじ ISBN:484023048X また懲りずにハリーポッターの原書を購入。この分厚さ、人が殺せ…

観たビデオ

機動戦艦ナデシコ Vol.1 古き良きラブコメとロボットアニメの融合・発展形といったところ。エンディングクレジットを見ると、佐藤竜雄、後藤圭二、會川昇、麻宮騎亜、明貴美加と、クリエイター陣がむちゃくちゃ豪華だ。 映像特典の桑島法子さん若いなあ。あ…

末尾再帰と継続(メモ)

レキシカルスコープと継続ができたので、あとSchemeに必要なものとしては末尾再帰の最適化がある。せっかくだからこれも実装したい。 どうやって実装すればいいか。最初はインタプリタではなくコンパイラを作らないといけないと思ったが、ひょっとすると継続…

続・継続

昨日の時点ではまだバグがあったが、そのバグも直った。たぶんこれで完成したと思う。最終的にはスタックですらなく、単に現在の継続を覚えておくだけで良くなった。これは継続自身に次に処理を渡すべき継続の参照を持たせることにしたためで、こうしないと…

継続(Continuation)

なんかゴニョゴニョやってるうちに出来たみたい。 > (+ (call/cc (lambda (x) (x 1) 2)) 3) ==> 4 以下のページなども参考にしつつ、継続スタックを自前で管理することで実現した。継続に対応させるために、プリミティブ関数の実装がとても力業になってしま…

LispオブジェクトをJavaで実装する

ここ数日Java版Lispインタープリタを作っている。実装できそうなところから作っていったので、現時点ではEmacs LispとSchemeの混ざったようなへんてこな言語仕様になっているが、それでもそれなりのことはできるようになった。まだいくつかバグが残っている…

新刊チェック

Firefox Hacks ― 次世代ブラウザ徹底活用テクニック ISBN:4873112419 GDBハンドブック ISBN:487311246X Amazonにはまだ情報がないようなので、O'reillyのページから詳細情報を以下に引用。 Firefox Hacks ― 次世代ブラウザ徹底活用テクニック Nigel McFarlan…

借りたビデオ

機動戦艦ナデシコ Vol.1 #1 「『男らしく』でいこう!」 / #2 「『緑の地球』は任せとけ」 90年代を代表するSFラブコメだけど、実は今までちゃんと観たことがなかった。 あの頃は桑島法子が今のように実力派になるとは思わなかったなあ。

○○プログラマのレベル10

Perlプログラマのレベル10 Scheme:Schemeプログラマのレベル10 ちょっとしたURLメモははてなブックマークでやってたんだけど、それだと誰も読まない(自分も含めて)ということが分かったので、これからは日記にも書くことにする。自分のレベルはPerlだと7.2…

借りたDVD/ビデオ

ショーシャンクの空に【字幕版】 ASIN:B00005J50W レオン 完全版 ASIN:B00005GQWW CURE ASIN:B00005HSIR 普段映画はあまり観る方ではないが、ずっと観たいと思っていた映画があったので、数年ぶりにレンタルショップに行った。そうしたら、観たい作品があり…

買ったもの

USB&PS/2コンパクトフルキーボード (ELECOM) TK-UP01MALBK 今まで使っていたキーボード(HHK Lite2 日本語配列 PS/2 白)がFnキーだけ使えなくなるという変な故障をしたので、新しいキーボードを買った。最初は同じHHK Lite2の黒いやつ(ASIN:B0000U1DJ2)にしよ…

読んだ本

奇蹟の表現II 雨の役割 / 結城充考 ISBN:4840231273 トゥーチカと飴 / 佐藤雅彦 ISBN:4314009926 子供の仕事 / 佐藤雅彦 ISBN:4314009934 闇からのささやき / あさのあつこ ISBN:4061485350 最近、心理的にも物理的にも余裕があまりなくて、読んだ本の感想も…

HTMLElement.prototypeを拡張してinnerTextを実装する

Function.prototypeを拡張して遅延実行を実現するを参考に(というかほとんどパクり)、以下のようなテストコードを書いて実行してみたらうまくいった(Firefoxの場合)。 javascript:(function () { Object.extend = function(destination, source) { for (prop…

AmazonからはてなASINページに移動

javascript:if(window.location.href.match(/^http:\/\/www\.amazon\.co\.jp\/exec\/obidos\/ASIN\/([^\/]+)/)){location.href='http://d.hatena.ne.jp/asin/'+RegExp.$1;}こっちは単純なブックマークレット。リンクにしておくとブラウザに登録するのが簡単…