これはRuby Advent Calendar 2021 3日目の記事です。 PicoRubyというマイコン用のRubyをつくっています。 もうすこし正確に書くと、PicoRubyコンパイラというmruby互換の省メモリコンパイラをつくり、それをmruby/cバーチャルマシンと統合しています。 本稿では、Ruby言語のコンパイラについて書きます。 【注意】以下、とくに調べもせず記憶だけで書くので、不正確です。 コンパイラは一般に、3つの段階から構成されます: トークナイザ(スキャナあるいはレキサとも) パーサ(パーザと発音する人もいます。日本の大学でコンピュータサイエンスを学んだ人にこの傾向がありそう。まつもとさんとか) コードジェネレータ(たんにジェネレータとも) トークナイザとパーサをコンパイラ内のフロントエンド、コードジェネレータをバックエンドに分類する考え方もあります。たしかドラゴ
![しまもん | はすみきん | [Ruby Advent Calendar 2021] PicoRubyあるいはRuby言語のコンパイラについて](https://cdn-ak-scissors.b.st-hatena.com/image/square/0394aae437d49e0d26240a0d22aba0992489d92f/height=288;version=1;width=512/http%3A%2F%2Fshimane.monstar-lab.com%2Fimages%2Fmruby-microruby-massif.png)