program

code jam

Round1で敗退です。 Round1A small問題1つ解いただけ、9点。でも順位は1200/2200くらいだった。同点でもあと10分くらい早く解いていればベスト1000に入れてたっぽい。 Round1B 35点。順位1800/2800くらい。1問完答できたので、1回目より満足度は高い。 Round…

SICP 4.1章を読んだ

lispでlispを実装する章です。 ここ2週間ほど、lispのインタプリタを実装してる。言語はC。 オブジェクトの表現 →rubyのぱくり eval/apply →SICPのぱくり パース →自作。やっつけ だいたいは動くようになったんだけど、明らかにパースの部分が足を引っ張って…

関数名に引数を埋め込める言語を作ろうとするテスト

アセンブラによってオペランドの流儀が2つあったりして分かりづらい mov dist, src mov src, dist とか。ま、アセンブリなんてほとんど使わないのですが、高級言語でも引数の順番が覚えられないことが多くて困ります。これ、英語の文章っぽくコード書ければ…

WSHツール作るときのテンプレート

人にツール作ってって頼まれたときはwshで動作するものを作るのが便利。 わざわざexeファイル作んなくてもいいし、rubyとかperlとか怪しげなソフトウェアをインストールしてもらわなくてもいいので、気軽にツール作って渡せる。 インターフェースとしては、…

Cで静的に連想配列を生成したいんだがなんとかならんのか

仕事で struct st{ int id; int x; int y; }; enum {hoge, fuga, aho, baka, end_enum}; struct st ary[] = { {hoge, 1,100}, {fuga, 2,200}, {aho, 3,300}, {baka, 4,400} }; って定義して、 foo(int id) { for(i=0 ; i < end_enum ; i++) { if(ary[i].id =…

enum値の逆引きをする関数を生成する

以前、同期からされた質問で、 enum enum_type{ hoge,fuga,aho }; という宣言に対して、 enum enum_type v = fuga; printf("%s",search(v)); //=> fuga という感じで、enumに定義した識別子を文字列として出力するようなsearch関数を自動的に作れないか?とい…

const修飾子の動作

まとめ constは直後にくるモノを修飾する プログラマはコンパイラに対して、"const修飾された"モノは、実行途中で値を変更しないことを約束する constレシピ const char *c; --> cはポインタであり、指し示すものは"const char"である。 ポインタの指し示す…