2006-08-09 (Wednesday) [長年日記]
■
OS自作入門 4日目
32ビットモードに加え,C言語の導入などの話でした. アセンブリストではないボクにとってはだんだん話が楽になってきた.
コードにもボクの流儀とは違う箇所も出てきて面白い. たとえば,
#define COL8_840000 9
という記述があったりするのだけど,ボクだったら
#define COL8_RED 9
のように書くかなぁ.とかそんな部分でも楽しんでいます.
ふむ.3日目と4日目のコードは面倒で目を通していません. 6日目で分割コンパイルをするようなので,それが終わったら全体に目を通してみようと思います.
■ .NETの実装が激しい件について
とても次世代の言語のVMとは思えない.
以下,Mono Projectのソースコードより引用.
guint32 mono_metadata_token_from_dor (guint32 dor_index) { guint32 table, idx; table = dor_index & 0x03; idx = dor_index >> 2; switch (table){ case 0: /* TypeDef */ return MONO_TOKEN_TYPE_DEF | idx; case 1: /* TypeRef */ return MONO_TOKEN_TYPE_REF | idx; case 2: /* TypeSpec */ return MONO_TOKEN_TYPE_SPEC | idx; default: g_assert_not_reached (); } return 0; }
ビット演算しまくりんぐwww ボクの貧弱な頭ではそろそろ限界かなーwww
とはいえ,他のVMの実装は真面目に見たことがないんですが, みんなこんなもんですかね?
[]
本日のPingbacks(全0件)









VMはがんばって少しでも処理を軽くしないと、使いものにならなくなりそうだと思ってみたり<br>みんなを幸せにするために、見えないところでがんばるのさ
うーん,それにしてもこれはC言語が戻り値をひとつしか取れないことに起因している複雑さのような気がしちゃうんだよなぁ...<br>でも,泥臭い部分は全部ここらへんでやっといて,表からはキレイに見えてれば,(一部を除き)みんなシアワセで何にも問題ないのかもしれないね.
ということは、VMを書く人は不幸に・・・<br><br>ところで、今日のメモのURLが変わってることに今気づいたよ。<br>一ヶ月ほどRSSがとれてなかったorz