2012-05-29 11 views
5

Soy programador de Haskell (generalmente implemento algorithms in Haskell) e intento comprender la biblioteca HOOPL pero no puedo descifrarla. No tengo antecedentes del compilador (actualmente estoy aprendiendo de Coursera y compiladores: principios, técnicas y herramientas) y sería genial si me puede sugerir una forma sistemática de proceder para comprender la biblioteca HOOPL (cuál es el requisito previo). Digamos que tengo un pequeño código Haskell en el que quiero aplicar la optimización del flujo de datos usando HOOPLOptimización del flujo de datos usando HOOPL

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

Cómo escribir código para optimizar HOOPL esto. Sería genial si pudieran dar un ejemplo mejor y perdonarme si parezco estúpido.

+0

no suena estúpido. [Este documento] (http://research.microsoft.com/en-us/um/people/simonpj/papers/c--/dfopt-popl10.pdf) parece bastante legible y parece abordar la eliminación del código inactivo. – jberryman

Respuesta

5

Un buen lugar para comenzar es sacar el git repo, que tiene muchos archivos adicionales en comparación con lo que está en Hackage. Mirando el subdirectorio/testing, y puedes ver un código simple que define un lenguaje imperativo básico y algunas optimizaciones sobre él.

Cuestiones relacionadas