タグ

haskellとcompilerに関するjjzakのブックマーク (2)

  • オフサイドルールの処理 - soutaroブログ

    予習編.たまーに,YAMLのパーサとか欲しくなるんだけど,インデントの処理をどうやったら良いのかよくわからなくなって困っていたんだけど,勉強になった. Haskell 98 Syntaxにこと細かに書いてあるので,適当に実装してみた. http://svn.soutaro.com/has/tags/offside-rulesにありますので,適当にチェックアウトして,ocaml-3.10とかfindlibとかextlibとかインストールしたうえでmakeしたらできます.標準入力からHaskellプログラムを読み込んで,オフサイドルールを処理したやつ,つまり適当に{}とか;とか追加したトークン列を出力します. let fac3 0 = 1 fac3 n | n > 0 = n * fac (n-1) みたいのが, { let { fac3 0 = 1; fac3 n | n > 0 = n *

    オフサイドルールの処理 - soutaroブログ
    jjzak
    jjzak 2008/01/26
    OCaml での Haskellオフサイドルールの処理
  • Haskell: ミニコンパイラを試す - Accept Things

    Haskellで実装された勉強用のコンパイラがないか探していたらありました。Haskellでコンパイラを書きたいと思っている方や、Pugsの実装に興味のある方は、今回紹介するミニコンパイラに興味を持ってもらえると思います。 Simple compiler example このコンパイラは、計算式を架空のスタックマシンのコードに変換するというものです。私たちが普段使っているPentiumマシンに搭載されているFPUもスタックマシンの一種ですね。(参考) 例えば、「1+2-3」をこの架空のスタックマシンのコードに変換すると、以下のようなコードに変換されます。 PushConst 1 PushConst 2 PushConst 3 SubToS AddToSでは、ソースをゲットして、ghciで実際に試してみましょう。 % wget http://www.doc.ic.ac.uk/~phjk/Co

    Haskell: ミニコンパイラを試す - Accept Things
  • 1