soutaroのHaskellにっき

2008-02-02

[]どこまでやるか決める どこまでやるか決める - soutaroのHaskellにっき を含むブックマーク はてなブックマーク - どこまでやるか決める - soutaroのHaskellにっき

最初に,Haskellのどこまでの機能を実装するのか決めてしまいたいと思います.後日,進み具合によって変更することはあるかもしれませんが,目標は決めておきたい.

現時点で,Haskellの興味深い機能を適当に挙げると次のようになります.便宜上,字句解析器・構文解析器・評価器・型システムに分けました.

  1. 字句解析器
    1. オフサイドルール
  2. 構文解析器
  3. 評価器1
    1. パターンマッチ
    2. 遅延評価
  4. 型システム
    1. 型推論
    2. 型クラス
  5. 評価器2
    1. 型クラス
    2. Monadic IO

それぞれ上からの順で実装していけば良いと思います.オフサイドルールは飛ばしても問題ありませんね.パターンマッチは別に興味深くは無いのですが,私が実装したことがありませんでした.遅延評価も飛ばせますが,遅延評価が無いとMonadic IOがなんだかちょっと寂しいことになってしまいます.型クラスを実装しないとその下には進めません.

あと,コンパイラを書くのは面倒なので,全て再帰的なevalで評価器は書きます.また,型推論なんかもパフォーマンスは無視で,関数的に書いていこうと思います.あまりに遅かったらまた考えますが.

あとプログラミング言語はOCamlを使います.ocaml3.10とfindlib,ExtLibが導入されている環境を前提でソースコードを書いていきます.私のコードをビルドしたい方はインストールしておいてください.