コンパイラーの実装は一朝一夕にはいかず

schemeコンパイラーが欲しいなぁとなんとなく思うようになってきました。
というのは、最近はやりのCoffeeScriptRubyPythonを足して2で割ったようなLLをJavaScriptに変換して実行するあれです。
CoffeeScript本なんかを書店で眺めていると、なんかこういうのもSchemeでできたらいいなぁとか思うようになったのです。
でも難しいのはやはり末尾再帰。素直に変換したらあっという間にスタックオーバーフローですよ。
今回作ったSCHEMEON.jsも末尾再帰でスタックオーバーフローしないように最初から設計しましたし。
ということで、四苦八苦しながらSchemeJavaScript変換装置を作っているのですが、なかなか難しいですね。
思ったように動いてくれません。