RustでCコンパイラ その04 STEP11まで(変数、複数文、return文まで完了)
2025-11-21 18:52:44
- Tags:
- Rust
下記をRustで実装する続き。
低レイヤを知りたい人のためのCコンパイラ作成入門
Githubは下記。
commitコメントに、learnt step N って書いているから、該当のところをみれば変更が分かると思う。
STEP8に関連するところは、すでに済んでいたのでカット。
だけど、読み物として、「分割コンパイルとリンク」は非常に面白かった。
この元記事、随所に挟まれるコラムが結構面白い。
STEP9, 10はローカル変数の導入。
まずは1文字の変数追加して、次で複数文字の変数を扱えるようにしている。
しかもここで複数文をコンパイルできるようになるので、いきなりプログラム感があがった。
さらに、僕がRustにも慣れてきて、特に苦労せずに改造していけるようになってきた。
マジでRustのコンパイル駆動開発が楽しい。
まだ関数は導入していないけど、関数を導入してもいいようにローカル変数を考えているので、
アセンブラが結構複雑になってきた。
この過程で、アセンブラには空行を入れても問題ないことを知った。
複雑な命令でてきているので、アセンブラもちゃんと覚えなきゃなー。
STEP11はreturn文。
初となる予約語なので、tokeniserのところに工夫が必要だが、わりと適当な実装になった。
今後も予約語増えてくるので、ここどうにかしないとなー。
なお、STEP12からはまだ加筆予定らしく、完成していないっぽい。
でも大体は書いてあるから、自分で読み進めていくつもり。
参照実装(下記)もあるので、まあ何とかなるでしょう。


There are currently no comments on this article, be the first to add one below
Add a Comment
Note that I may remove comments for any reason, so try to be civil. If you are looking for a response to your comment, either leave your email address or check back on this page periodically.