2012-05-29 22 views
5

私はHaskellプログラマーです(私は一般的にalgorithms in Haskellを実装しています)HOOPLライブラリを理解しようとしていますが、私はそれを解読できません。私はコンパイラの背景を持っていません(現在CourseraとCompilers:Principles、Techniques、and Toolsから学んでいます).HOOPLライブラリの理解を進めるための体系的な方法を提案することができれば嬉しいです(前提条件は何ですか?私はこれを最適化するためにHOOPLコードを書くためにどのようにHOOPLHOOPLを使用したデータフロー最適化

add :: Int -> Int -> Int 
add x y = z where 
    x' = 1 
    y' = 1 -- this will be dead code elimination 
    z = x' + 1 

使用して、データフローの最適化を適用する上での小さなHaskellコードを考えてみましょう。もしあなたが愚かに聞こえたら、もっと良い例を与えて私を許してくれれば素晴らしいだろう。

+0

あなたは愚かではありません。 [このペーパー](http://research.microsoft.com/en-us/um/people/simonpj/papers/c--/dfopt-popl10.pdf)はかなり読みやすく、デッドコードの除去に対処しているようです。 – jberryman

答えて

5

開始するには、git repoをプルするのがいいでしょう。これには、Hackageのものと比べてたくさんの追加ファイルがあります。/testingサブディレクトリを見ると、基本的な命令型言語を定義する単純なコードとその最適化を見ることができます。

関連する問題