Humanity

Edit the world by your favorite way

Forth習得のためのインタープリタ作成状況

まだまだ継続中。もう1週間近く経ってるような...
ていうかタイトル、いつの間に目的が変わってるような気がしないでもない。
<言い訳>Cでyacc/lexもBoehm GCも使わずがんばるって約束だったし、valgrindのメモリリークテスト全て通そうとすると時間くっちゃってさー</言い訳>

全部当たり前のことです、本当にどうも(ry


で、C言語にも結構慣れてきたので、今のうち気付いたこととか愚痴感想を書いていく。

  • 返り値とかポインタとか外部変数とかでエラーチェックするのめんどい。統一した例外のような機能が欲しい...
  • memset()が遅い?
    • gdbでステップ実行するとmemset()の時だけちょっと止まる。バイトを全部埋めてくだけじゃないの?
  • キャストは検索のためにもマクロにしておく。
  • メンバにerrnoって変数を用意してたら、#include した途端、大量のエラーに悩まされた。
    • errnoは変数を装うマクロの可能性もある...なのでerrnoという単語を変数名や関数名にするべきではない。
  • 関数先でmalloc()をして、そこに返すはずのポインタを上書き&メモリーリークしてしまう
    • あるある