2010-07-01から1ヶ月間の記事一覧

純粋関数型言語の処理系を作ってみることにした (その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で扱うことになると思います。 ただ…

brainfuckOSを作ろうとしてみた

こんなのを見つけたのだけど http://code.google.com/p/brainfuckos/ 中が空っぽでがっかりしたので、自分で何か作ってみようかと思った。 はっきり言ってめんどくさすぎるので続きはやりませんが、こんなの作ってみました。 .code16 .equ SCREEN, 0xb800 .e…

オブジェクトファイルの設計

ファイル入出力とか可変長配列とかrowlVMのプリミティブが充実してきたので、現在はrowl-core言語で次期rowl1コンパイラの実装をしています。 ところが、メモリマネージャのないスクリプト言語であるrowl-coreは大量にメモリを消費する為ついに限界がきまし…

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

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

配列を実装した

メモリマネージャがちゃんと動きました。GCも今のところ大丈夫っぽいです。 ということで、エラトステネスの篩を実装してみました。次期コンパイラ実装専用のDSLなので可読性が低いのは勘弁してください。 (fun main () ( (sieve 200000) (exit 0) )) (fun s…