hjs: Javascript Parser in Haskell + Parsec

by syoyo

hjs: Javascript Parser
http://www.haskell.org/haskellwiki/Libraries_and_tools/HJS

JavaScript 実装、始め…るかも… と書き、あーそろそろぼちぼち手を付けてみんべかな、ここはやっぱりコンパイラは Haskell + Parsec で書くべかな, と思ってちらりとリサーチしたところ、
やはり世界は広い. すでに Haskell による JS のパーサがありました. しかも Parsec を利用!
Interpreter も用意されているみたいなので、あとはこれに LLVM codegen を作ってくっつければ完成かッ!?

ところで、この hjs が実装の参考にしている,

Monad Transformers and Modular Interpreters
http://web.cecs.pdx.edu/~mpj/pubs/modinterp.html

は知らなかったのですが、これ、Haskell でコンパイラのたぐいを書くときの設計流儀として非常に参考になりますね.
Write yourself a Scheme in 48 hours もこのような感じでコンパイラ実装が設計されているような気がしています.
Haskeller にとっては, このような設計流儀でコンパイラを書くのがデファクトスタンダードなのかな?

Monad Transformers and Modular Interpreters のような、
「Haskell でのコンパイラを作るときは、こう書けば簡潔で美しいしモジュラーになるしメンテしやすくなるよ」
みたいな流儀作法をもっと知りたいところです.

Advertisements