32nd Diary

過去の日記
today: , yesterday: , total:
2006年
8月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

めーるあどれす:ruby -r base64 -e 'puts Base64.decode64("dGFrQG5vMzIudGs=")'


トップ «前の日記(2006-08-08 (Tuesday)) 最新 次の日記(2006-08-10 (Thursday))» 編集

2006-08-09 (Wednesday) [長年日記]

OS自作入門 OS自作入門 4日目

32ビットモードに加え,C言語の導入などの話でした. アセンブリストではないボクにとってはだんだん話が楽になってきた.

コードにもボクの流儀とは違う箇所も出てきて面白い. たとえば,

#define COL8_840000 9

という記述があったりするのだけど,ボクだったら

#define COL8_RED 9

のように書くかなぁ.とかそんな部分でも楽しんでいます.

ふむ.3日目と4日目のコードは面倒で目を通していません. 6日目で分割コンパイルをするようなので,それが終わったら全体に目を通してみようと思います.

Tags: Hack OS

.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の実装は真面目に見たことがないんですが, みんなこんなもんですかね?

Tags: .NET Work
本日のツッコミ(全3件) [ツッコミを入れる]
tyv (2006-08-10 (Thursday) 01:13)

VMはがんばって少しでも処理を軽くしないと、使いものにならなくなりそうだと思ってみたり<br>みんなを幸せにするために、見えないところでがんばるのさ

32 (2006-08-10 (Thursday) 11:00)

うーん,それにしてもこれはC言語が戻り値をひとつしか取れないことに起因している複雑さのような気がしちゃうんだよなぁ...<br>でも,泥臭い部分は全部ここらへんでやっといて,表からはキレイに見えてれば,(一部を除き)みんなシアワセで何にも問題ないのかもしれないね.

tyv (2006-08-10 (Thursday) 16:00)

ということは、VMを書く人は不幸に・・・<br><br>ところで、今日のメモのURLが変わってることに今気づいたよ。<br>一ヶ月ほどRSSがとれてなかったorz

[]
本日のPingbacks(全0件)