とりあえずレジスタの割り当て。最初は無限にレジスタがあると仮定して順番に 番号を当て、後から実際のレジスタに割り当てる。レジスタが足りなくなったら スタックを用いて足りない分を補填する。(ここまでwikipediaの受け売りです!) 無限個のレジスタって最近どこかで見たなーと思ったら、ここで見たのだった。 そんでもって、そのページは一箇所だけ悔しい部分があって……ひとつだけリンク色が変わっていることに気づいたとき、愕然としてしまった。 よりにもよって Brainf**k だけとは。過去の、そして現在に至るまでの自分の 見識がどれだけ狭いのかと、過去の自分に気づかされた瞬間だった。過去からタ イムマシンに乗ってやってきた自分が「お前はアホだよ」と囁いた瞬間だった。 で、えーとなんだっけ?レジスタだっけ?テキトーでいいよもう。(続く)
何かに利用するつもりで、(仕様的な意味で)タイニーな C コンパイラを作り 始めたのだが、作っているうちに作ること自体が目的化してしまい、何に利用す るつもりだったのか忘れてしまった。 とりあえず、コンパイルして出来たバイナリを ROM イメージの尻にくっつけて 関数ポインタでホニャホニャみたいなことをしてみるが、GCC + binutils でも 同様のことは出来るのであまり面白みは無い。 何かしらのゲームコンストラクションツール的なものを作るとして、挙動は普通 スクリプト+インタプリタで生成することになると思うけど、それがネイティブ コードで動かせるのはいいかなと思った。そうすると、単体で動かせてライセン スも問題無いちっちゃな自前コンパイラという線はあってもいいような気はする。 でも、よく考えたらその線でも既に tcc があったりして、本当に無駄なことして るなぁと。