GHC Core - это язык System FC , на который переведен весь Haskell.(Приблизительная) грамматика для ядра определяется следующим образом:
![enter image description here](https://i.stack.imgur.com/RP6fQ.png)
Ядро тесно связано с более простой и известной системой F .Все преобразования , выполняемые GHC на уровне ядра , являются сохраняющими тип рефакторингами этого представления ядра для повышения производительности.И, не очень хорошо известно, вы можете писать прямо в Core для программы GHC.
GHC Core вписывается в конвейер компилятора (как это было в 2002 году, sans-LLVM и CMM):
![enter image description here](https://i.stack.imgur.com/PtsCf.png)
Основными документами, которые необходимо узнать о ядре GHC, являются:
Связанные материалы, которые могут помочь пониманию:
- GHC - вывод текстового ядра
- Я потратил много времениЯдро обучения путем чтения источника GHC.Некоторые из них описаны в моей дипломной работе от 2002 года, со стр. 16.
- С использованием инструмента ghc-core для генерации Core в формате, который мне нравится.
Ядро в свою очередь переводится в код STG, который выглядит примерно так:
![enter image description here](https://i.stack.imgur.com/Gaj9X.png)
Смешные имена в Core кодируются в "Z-кодировка ":
![enter image description here](https://i.stack.imgur.com/J9pqR.png)
Типы и виды сердечника GHC (из статьи Толмача):
![enter image description here](https://i.stack.imgur.com/eNvd2.png)
Наконец, GHC's Примитивы регулярно появляются в выводе GHC Core, когда вы оптимизировали свой Haskell до основных инструкций, о которых GHC знает.Набор примопов представлен в виде набора основных функций в предварительно обработанном файле.