puref

純粋関数型言語の処理系を作ってみることにした (その4 : Mark-2 G-machine)

純粋関数型言語の処理系を作ってみることにした (その3 : Mark-1 G-machine)の続き。教科書P94-P97まで。 http://github.com/nineties/puref/commit/4cd5d92a5f02468929bc2dd2ddafbd363251c86cMark-2 G-machineでは遅延評価を行う為の準備として、Update/Pop…

純粋関数型言語の処理系を作ってみることにした (その3 : Mark-1 G-machine)

純粋関数型言語の処理系を作ってみることにした (その2)の続き。 今日は教科書の第3章P75-P94(Mark1: A MINIMAL G-MACHINE)の実装をしました。 現状では関数適用しかできません。遅延評価はまだ扱っていなくて、次回Mark2で扱うことになると思います。 ただ…

純粋関数型言語の処理系を作ってみることにした (その2 : Pretty Printer)

純粋関数型言語の処理系を作ってみることにしたの続き。 先週末はちょっと忙しかったので毎週日曜日の予定がずれてしまいました。 今日はPretty Printerを作りました。G-machineは次回に回します。 http://github.com/nineties/puref/commit/9295d96e1e0adb7…

純粋関数型言語の処理系を作ってみることにした

関数型言語というと型システムなどフロントエンド部に注目が集まりやすいと思いますが、私はバックエンドの実装に興味があります。 そこで小さな純粋関数型言語の処理系を作ることにしました。名前は安直ですがpurefにします。方針 勉強用の実装 飾りは付け…

構文木・レキサ・パーサ

構文木は教科書7ページに書いてあります。非常にシンプルです。Haskellのような複雑な言語も構文糖衣を取り除くと,同様の言語まで単純化されます。そんなバカなと思う人は,GHCのソースのghc/compiler/coreSyn/CoreSyn.lhsを読んでみて下さい。 レキサ/パーサ…