tib*_*bbe 190 compiler-construction performance haskell ghc
核心是GHC的中间语言.阅读核心可以帮助您更好地了解您的计划的性能.有人问我关于阅读Core的文档或教程,但我找不到多少.
有哪些文档可供阅读GHC Core?
这是我到目前为止所发现的:
Don*_*art 265
GHC Core是所有Haskell都被翻译成的System FC语言.Core的(近似)语法由下式给出:

核心与更简单和更知名的系统F密切相关.GHC在Core级别上进行的所有转换都是此Core表示的类型保留重构,以提高性能.而且,不是那么出名,您可以直接在Core中编写GHC程序.
GHC Core适用于编译器管道(与2002年一样,sans-LLVM和CMM):

了解GHC Core的主要文件是:
有助于理解的相关材料:
核心反过来被翻译成STG代码,看起来像:

Core中有趣的名称以"Z编码"编码:

GHC Core的类型和种类(来自Tolmach的论文):

最后,当您将Haskell优化到GHC所知的基本指令时,GHC的初始值会定期出现在GHC Core输出中.primop集在预处理文件中作为一组Core函数给出.
nom*_*olo 24
提示:如果您不关心类型注释和强制使用-ddump-simpl与-dsuppress-all选项一起使用.核心输出应该更具可读性.
虽然不完全是GHC核心语言,但Don提到STG语言非常相似.我最近经历了STG语言+机器的证明类型安全的练习,之后我发现我很容易理解Core.
我用来学习STG的文本很容易理解:在Stock硬件上实现懒惰的功能语言: Simon Peyton-Jones 的Spineless无标记G-machine.本文的大部分内容都与实现细节有关,但我特别推荐第4节作为STG语言的自上而下的解释,为一些反直觉的设计决策提供动机,并提供熟悉的例子的翻译map.
| 归档时间: |
|
| 查看次数: |
15375 次 |
| 最近记录: |