Оптимизация потока данных с использованием HOOPL

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам