hoopl

    5熱度

    1回答

    我是Haskell程序員(我通常實現algorithms in Haskell)並試圖理解HOOPL庫,但我無法解碼它。我沒有編譯器背景(目前從Coursera和Compilers學習:原理,技術和工具),如果您能夠建議我係統地瞭解HOOPL庫(先決條件是什麼),那將是非常好的。可以說我有關於這一點我想用HOOPL add :: Int -> Int -> Int add x y = z whe

    7熱度

    2回答

    我正在使用Hoopl庫,並希望在重寫時進行一些操作。重寫函數對於使用的monad是多態的,但是我不知道如何將State monad與其中一個庫的Fuel monad結合在一起。 下面是一個簡單的例子。 MyMonad是Hoopl的CheckingFuelMonad和State monad攜帶一個標誌的同義詞。 Stmt只是我的中間語言的佔位符,並不重要。 {-# LANGUAGE GADTs, R

    3熱度

    2回答

    我試圖將Hoopl引入到某些編譯器中,並且遇到了一些問題:創建 Hoopl的圖使得節點按引入的標籤順序出現。 例如: (define (test) (if (eq? (random) 1) 2 (if (eq? (random) 2) 3 0))) 「編譯」 到 L25: call-direct random -> _tmp7_6 branch L27 L26: return RE