Использование Supero (суперкомпилятор Haskell)? - PullRequest
8 голосов
/ 13 июля 2011

Я смотрю на этот проект http://community.haskell.org/~ndm/supero/

Я скачал и скомпилировал программу и мог использовать ее на прилагаемых примерах.Но я попробовал это на своем исходном коде, и похоже, что программа понимает только подмножество Haskell.

Я получил что-то вроде этого:

суперкомпилятор: необработанный изDecl: PatBind (SrcLoc{srcFilename = "unknown.hs", srcLine = 15, srcColumn = 1}) (PTuple [PVar (Ident "width"), PVar (Ident "height")]) Ничего (UnGuardedRhs (Tuple [Lit (Int 7)),Lit (Int 6)])) (BDecls [])

Код доступен здесь https://github.com/phuc/Score4-haskell/blob/master/Main.hs

Как получить GHC для вывода вида Haskell, который понимает Supero?

Большое спасибо.

Ответы [ 2 ]

10 голосов
/ 13 июля 2011

Слайды здесь , по-видимому, предполагают, что сначала он проходит через Yhc, затем преобразуется в промежуточную форму HILL (язык промежуточного звена Haskell первого порядка - см. Слайды), а затем, наконец, анализ можетбыть сделано.

Другая слайд-шоу предоставляет эту диаграмму:

Diagram of Compilation Process

3 голосов
/ 13 июля 2011

Насколько я понимаю, текущая версия Supero обрабатывает только подмножество Haskell, описанное в документе ICFP 2010 .

Предыдущая версия интегрировалась с конвейером YHC и могла обрабатыватьбольшее подмножество.Это было довольно давно, и сборник самого YHC довольно разрушает душу.Я бы не советовал.

Макс Болингброк в настоящее время интегрирует свой собственный суперкомпилятор в GHC.Однако я не вижу код в его GitHub хранилище, поэтому он может быть еще не готов к общедоступному использованию.

...