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

Lubuntu 評価中

自宅の PC は、メモリが 512MB しかなく、購入当初ならともかく、はっきり言って Windows XP に SP が当たった現在では使い物にならない。それで Ubuntu を入れていた。8.10 でずっと使っていたけど、やっぱりモサモサする。そこで、8.10 はサポートも切れて…

Scheme でやりたいこと

Scheme は予約語がなかったり構文拡張ができたりするので、自分で言語をデザインできるのが魅力だ。やりたいことをまとめておこう。 ジェネリック関数 length、string-length、vector-length を length に、write、write-char を write に統合。これはそんな…

ビットフィールドのためのポータブルなコード

ビットフィールドは、構造体のサイズをコンパクトにするために便利な仕組みだ。 typedef struct { int bar: 24; int baz: 8; } Foo; 32 ビット環境なら、こんな構造体だと、この構造体は 4 バイトですむ。ただ、24 ビットとか 8 ビットというような環境に依…

DrRacket を試してみた

DrRacket でデバッグでステップ実行をしているところ。ガリガリ書くためのエディタとしては機能は足りていないんだけど、実行環境としてはこの上なくわかりやすい。特にステップ実行で変数の内容が確認できるのはすばらしい。任意の S 式でブレイクポイント…

i++ と ++i、++i の方が高速という都市伝説を解明

昔、ある時、ふと気がついた。 int i; for (i = 0; i < 10; i++) { } for (i = 0; i < 10; ++i) { } 同じ動作をする for ループなんだけど、i++ と ++i の部分で、i++ の方が処理に無駄がある(下の値とインクリメントした値の両方を保持しなきゃならない)…