Haskell で
Haskell 処理系
かいてます (575)
2021-05-30 プログラミング言語処理系が好きな人の集まり 第1回ミートアップ
海野 秀之(うんの ひでゆき)
@unnohideyuki
Bunny
A Haskell compiler for Android
コンパイラの構造(処理パイプライン)
https://uhideyuki.sakura.ne.jp/studs/index.cgi/ja/HaskellInHaskell
2016 年時点からこの図の構造はかわってないです
これまでやったこと(とてもながい。盆栽?)
modern
compiler
implementation
in ML
(通称 Tiger Book)
Tiger コンパイラとの比較
Tiger コンパイラの処理フェーズ
Bunny の処理フェーズ
言語は単純だが、マシン語出力に必要な
メモリ・レジスタ配置の処理が多い
Haskell が高水準言語なので
意味解析と中間言語間の翻訳段数が多い
今回は Java を吐くことにしておいて良かった…
JVM ターゲットの限界?(Dalvik でも同じはず)
※ Version 2 以降で気にします(いまはまず Version 1 を目指さねば)
Version 1 / 2 へのロードマップ
Version 0.9.x
Version 1.0.0 (2021 年 5 月予定(未達))
Version 2
定めてみたものの…
(めちゃくちゃ停滞中)
Version 1 に向けた大物(主観)
※ Haskell 処理系としてのコアは作成済みだが、実用的言語に�必要とされる様々なものが未だたくさん未実装。あとバグも多い。
ミートアップで話したかったこと
…など