2008-04-01から1ヶ月間の記事一覧

「闘わないプログラマ」復活

ふっと「闘わないプログラマ」さんの文章が読みたくなった。おお、いまごろ気づいたけど、「闘わないプログラマ」はてなブログに来ているよ! http://d.hatena.ne.jp/lepton31/これは嬉しい。あの人の文章は、エンジニアが疲れたときに読むのにとてもいい。

[Common Lisp] Movitz 構成

実行環境の sbcl から、Common Lisp の disassemble を実行すると、PPC の機械語が見れる。 CL-USER> (disassemble 'cons) ; 101FC550: .ENTRY CONS(SE1 SE2) ; (FUNCTION ; # *) ; 68: 3A7FFFD7 ADDI $CODE,$LIP,-41 ; 6C: 3A0F0020 ADDI $CSP,$CFP,32 (略…

Movitz

SBCL と、Common Lisp の開発環境 slime と asdf をつかうと、少しシンプルになる。 本当はもっと開発環境支援もあるようだが、とりあえずメモ。 binary-types と movitz 本体をダウンロード。 (Emacs)SLIME を起動(M-x slime) (SBCL)asdf の設定。ダウンロ…

Movitz 続き

まだ全然ドキュメントを読んでいないが、movitz を調べると Common Lisp での機械語へのコンパイルについて ハードウェアをどのように抽象化しているか C なみの層を扱う言語としての Common Lisp などということが少し分かると思う。ためしに movitz/losp/l…

Movitz Compile 成功(多分)

以下超斜め読みなので注意。http://trac.common-lisp.net/movitz/wiki/FromNothingToImage 参照。Movitz は、Common Lisp で書かれていて、 Movitz 単独でブートし、さらに Common Lisp が動く、という Common Lisp らしい楽しげな作りになっている(ようだ…

Movitz compile 失敗

SBCL, AllegroCL で movitz の .img を生成しようとしてみたが、失敗。 cvs 先端だから? ひまになるまでお預け。

Q(QEMU の Mac OS版) で Movitz

Movitz(http://common-lisp.net/project/movitz/) を動かしてみたいが手元に PowerPC の Mac しかない、という人へ。以下、無保証な自分用メモ。Q を使えば x86 の仮想PC を作れる。 http://common-lisp.net/project/movitz/files/ から img ファイルを二つ…

Movitz / Qemu / Mac OS X

あっさり動いてびっくりだ。

An Incremental Approach to Compiler Construction

aloha さんのやや昔の記事から。 http://alohakun.blog7.fc2.com/blog-entry-482.html 孫引きだけど。 http://www.cs.indiana.edu/~aghuloum/ を参照し、gcc -S の力を借りると、難しいとされるコンパイラの重要な部分に集中して試すことができる、はず。手…

最適化というサイエンス

id:higepon さんに対する gauche の shiro さんのコメント。VM の最適化ではデータをとっているという話。 http://d.hatena.ne.jp/higepon/20080410/1207793027さらに笹田耕一さんのコメント、 http://www.atdot.net/~ko1/diary/200804.html#d11 それから論…

Scheme VM

http://d.hatena.ne.jp/higepon/20080407/1207540730 http://d.hatena.ne.jp/higepon/20080408/1207662262 Scheme VM の最適化を id:higepon さんが行っている。VM の最適化は選択肢がある分、難しそうだ。全く初学者なので良くわかっていないが、 部分では…

CLHS: Section 3.4.1

Lisp interpreter 作り直し中。let -> setq -> progn とほとんど前のまま実装し、defun より前に lambda form を実装しようとしている。defun や lambda form が取れる lambda list は、 ordinary lambda list というもので、これをちゃんと実装すれば、イン…

CLHS: Section 3.1.1.1

http://d.hatena.ne.jp/cranebird/20080330/1206890819 の続き。Macro defun の設定を見ると、 Defines a new function named function-name in the global environment. とあり、 Global Environments の bindings of functions, macros, and special opera…