GHC Core - это язык System FC, на который переведен весь Haskell. (Приблизительная) грамматика для ядра определяется как:
Ядро тесно связано с более простой и более известной системы F . Все преобразования, которые GHC выполняет на уровне ядра, являются рефакторингами с сохранением типов этого представления ядра для повышения производительности. И, не очень хорошо известно, вы можете писать прямо в Core для программы GHC.
GHC Core вписывается в конвейер компилятора (как это было в 2002 году, sans-LLVM и CMM):
Основные документы, которые необходимо знать о GHC Core:
Связанный материал, который может помочь пониманию:
- Выход GHC -fext сердечником
- Я потратил много времени на изучение Core, читая исходный код GHC. Некоторые из них описаны в моей дипломной работе 2002 года, со страницы 16.
- Использование инструмента ghc-core для генерации Core в формате, который мне нравится.
Ядро в свою очередь переводится в код STG, который выглядит примерно так:
Смешные имена в Core закодированы в «Z-кодировке»:
Типы и виды сердечника GHC (из статьи Толмача):
Наконец, праймеры GHC регулярно появляются в выводе GHC Core, когда вы оптимизировали свой Haskell до основных инструкций, о которых GHC знает. Набор примопов дается как набор основных функций в предварительно обработанном файле.