[ 捕捉確認済アンテナ ] 日記観察 *BSD Diary Links わっちりんく(す) はこんだらウォッチ 天野アンテナ HNN日記バード しっぽあんてな しぐなるぽ〜と |
|
全部打ち込んでバグまで発見 した人がいたとは。
とりあえず買った10年前の当時(学生)は C もろくに知らん状態だったので、ちんぷんかんぷんでした。 大学の端末室( しゅがいさん のいる近辺)で Emacs の終り方も分からずおろおろしたり、
tree / &
とかやっていつまでも終らなくておろおろしたり(こればっか)、楽しい時代でした。
fgets して動くやつを適当に作って見る。MitnStack.c の最後にある isnum() と main() を main.c にコピってからちょっと変える。
while ( fgets( buf, 1024, stdin ) ) { char *p; p = strrchr( buf, '\n' ); if ( p != NULL ) *p = '\0'; eval( buf ); MitnStack_GarbageCollect(); MitnStack_Status(); printf( "> " ); } printf( "\nbye.\n" );
こんな感じ。
おう動いた動いた。10 20 add == とすると無事 30 と出る。 しかし (hello) == とやってもだんまり。
なんか CellType が間違っているような。どこで壊れているんだろう。
GhostScript のスキャナのコードを眺める。
うー、巨大なひとつの switch 文だ…。
gs5.50/src $ wc -l iscan.c 1128 iscan.c gs5.50/src $ grep case iscan.c | wc -l 157 gs5.50/src $ egrep "[a-zA-Z]*:" iscan.c | grep -v case | wc -l 42 gs5.50/src $ grep goto iscan.c | wc -l 48
160 近い case 分岐と 40 にものぼるラベルと 50 近い goto 文か。
きっつー。
任意の共用体をキーとしたハッシュ関数って、どう書くんだ?
~/src/toy $ ls CVS/ Str.h dict.c myctype.h prim_func.h Makefile cell.c dict.h prim.c scan.l Str.c cell.h main.c prim_func.c testmain.c
という訳で辞書の実装で収集がつかなくなってきたのでゴミ箱ポイポイのポイ。
もう一度始めからやり直し。とりあえず symbol -> symID のテーブルから再度挑戦。
ID から名前を逆引きする必要ってある?
ひょっとしてリリースする時にコメント(多分日本語)を削って 7-bit Through にするスクリプトをかましてるんじゃなかろうか?
あれだけの規模で本文中に覚書きがひとつもないのはねぇ。
… CVS ツリーの中はどうなっているんでしょう? > anyone knows.
是非 会長に直接 おっしゃって下さい。\(⌒∇⌒;)/
♯Referer 見てないんだろうな…
Lisp の場合
> foo => *** Symbol value is void: foo > 'foo => foo
GhostScript の場合
> foo => Error: /undefined in foo > /foo => /foo
Ruby の場合
> foo => NameError: undefined local variable or method `foo' for #<Object:0x80f2ecc> > :foo => 12385
Smalltalk の場合
> foo => nil > #foo => foo
単に「シンボル」というオブジェクトの外部表現が異なるというだけなんだろうか?
それともなにか本質的な部分が違う?
会社のWin機で試してみる。なかなか。しかし常用はできないなー。 僕は普通の人なので。(ぉ
そんなこというデスクトップマスコットって、初めて見たよ。
年末は想像を絶する状況。
のこちゃんと下の子が風邪で具合が悪く夜も眠れない。 家事に手が回らなくなって家の中がだんだん…。
年賀状もなかなか手がつかない。もう今日で今年最後の日だというのに。
以上、6日分です。
[Top] [PocketBSD] [シュミプロ] [ぽめれちょう掲示板] [きまたま日記] [最新版] [一覧] [戻る]
このページはTsDiarySystemを用いて生成されています。
Cake (SHIMADA Keiki)