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

PCをゲットしよう in x86 Linux

x86の命令ではPCを直接取得する命令はない。多分。でもcallを使うとメモリ上にPCは退避される。だったらそれを横から掠めてやれば、いつだってPCを見放題だね。 前回書いたように、Linuxでは関数の中のローカル変数一個めの位置から幾つか先に行ったところに…

スタックフレーム続き

とりあえず gcc -S してみた。 まずはmain部をretするまで。 main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ecx subl $20, %esp movl $printf, 8(%esp) movl $main, 4(%esp) movl $.LC1, (%esp) call printf …

アセンブリ言語を始めてみる

アセンブリ言語*1を始めてみることにした。 OCamlとLispはちょいとお休みで、しばらくはバイナリ方面をやってみることにした。手始めにインラインアセンブラについて勉強してみているところ。 思考タレ流しに近いので、以前やってたこととあんまり変わりない…

OCamlでのFizzBuzzの作り方

OCamlでFizzBuzzを作ろうとしているところをありのままのっけておきます。かなり時間かかってます。 さて、OCamlは関数型言語なので、手続き型のようにループ用の変数を使ったりするのは筋が悪い。 Lispならがちょがちょと論理を組んでいくのが向いているよ…

The Little Schemer 第七章

さて、 The Little Schemer の第七章は "Friends and Relations" 。 この章の内容を一言で言うと、「小さなツールを作っておくと論理がよく見えるようになる」。要するにボトムアッププログラミングの有効性についてだ。 それから、主題には出てこないけれど…

あ、どうもお世話になります

例のジョークRFCの和訳がこちらのリンク集に載ったようです。 RFC日本語版リスト 今見返したらひどい日本語訳だったので、もうちょっと推敲したいところ。

OCamlはじめました

なんかまぁ節操なく手を広げてるなあと感じる方もいらっしゃるかも知れませんが、OCaml始めました。理由はまだない。 現在は、毎日コミュニケーションズ社の「入門OCaml」を購入して、標準ライブラリ紹介の前までひとまず読んでみたところ。 とってもラムダ…

図書館の購入依頼 その後

購入依頼受付のお知らせが届いてから40余日、ついに書籍が利用可になりました!ぱんぱかぱーん!! ・・・いやさ、しょうがないんだけどさ、さすがに長いよなぁ。購入依頼を出したの、去年の八月の終わりだぜ。 一方で、八月の初め頃に購入依頼選定されたもの…

gcc拡張を使って、main関数より前にFizzBuzzを実行させてみた

gcc拡張を使うとmain関数の前に色々出来ると聞いたので、遊んでみた。 結論からいうと、二通りのやりかたがありそうで、私の環境*1ではどちらも問題無く動作した。 __attribute__((constructor)) という指定 関数の宣言に際して、__attribute__で関数にconst…

The Little Schemer 六章

The Little Schemer 六章の主題は抽象化。 (1 + 2) って式を (+ 1 2) と表すことだって可能だよね、と言う話から始めて、抽象化したプログラムの書き方を勉強していく一連の流れは見事。 最終的には(() () ())で3を表すような系を構築しようっていう話にな…