発表資料メモ
#MinRuby #MinRubyコンパイラ #コンパイラ #Ruby #書きかけ
発表資料のマインドマップ
https://xmind.ai/qSjHENEP
RubyでつくるRubyみたいな言語のコンパイラ
ターゲット環境
Linux / x86_64
プログラミング言語
TinyRuby
minruby のサブセット言語
Ruby でつくる Ruby で作成する言語
minruby との違い
サポートするデータ型は integer のみ
関数の引数は8つまで
ArrayとHashは未実装
(他にもいろいろ)
ターゲット環境と開発環境
ターゲット環境
Linux (x86_64) でのアセンブリを出力するコンパイラを作成
開発環境
手元の開発機は M1 な macOS なため、Docker を利用して Linux(x86_64) 環境を用意する
Docker イメージは Ruby のオフィシャルイメージを利用
https://hub.docker.com/_/ruby
以下のコマンドで Linux のシェルを起動する。x86_64(== amd64)用のイメージを利用したいので --platform=linux/amd64 を指定する必要がある。
code:sh
$ docker run --rm -it -v $PWD:/app -w /app --platform=linux/amd64 ruby:3.3 bash
Docker起動後、CPUが x86_64 で、OSが Linux なことを確認する
code:sh
$ uname -o -m
x86_64 GNU/Linux
メモ
Intel記法とAT&T記法
TinyRubyコンパイラ
MiniMLコンパイラ
https://www.fos.kuis.kyoto-u.ac.jp/~umatani/le4/index.html