2012-05-29 2 views
5

Я программист Haskell (обычно я использую algorithms in Haskell) и пытаюсь понять библиотеку HOOPL, но я не могу ее расшифровать. У меня нет фона компилятора (в настоящее время он учится у Coursera и Compilers: Principles, Techniques и Tools), и было бы здорово, если бы вы предложили мне систематический способ приступить к пониманию библиотеки HOOPL (что является необходимым условием). Допустим, у меня есть небольшой Haskell код, на котором я хочу, чтобы применить оптимизацию потока данных с использованием HOOPLОптимизация потока данных с использованием HOOPL

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

Как написать HOOPL код для оптимизации этого. Было бы здорово, если бы вы могли дать немного лучший пример и помиловать меня, если я буду казаться глупым.

+0

Вы не звучали глупо. [Этот документ] (http://research.microsoft.com/en-us/um/people/simonpj/papers/c--/dfopt-popl10.pdf) выглядит вполне читаемым и, по-видимому, устраняет устранение мертвого кода. – jberryman

ответ

5

Хорошее место для начала - это вытащить git repo, у которого есть много дополнительных файлов по сравнению с тем, что есть в Hackage. Lookin the/testing, и вы можете увидеть простой код, определяющий базовый императивный язык и некоторые оптимизации на нем.

Смежные вопросы