GHC公司

格拉斯哥-哈斯克尔编译器内联线的秘密。Haskell等高阶语言鼓励程序员通过组合函数来构建抽象。一个好的编译器必须有效地恢复这些调用。原则上,倾斜非常简单:只需用函数体的一个实例来替换函数的调用。但是任何编译器编写者都会告诉你,倾斜是一门黑色的艺术,充满了微妙的折衷,这些折衷可以在没有不必要的代码膨胀的情况下提供良好的性能。因此,本文的目的是阐明我们从一个完整的“production”内联程序(Glasgow-Haskell编译器中使用的)中学到的关键经验教训。我们主要关注算法方面,但是我们也提供一些指示性的度量来证明内联线的各个方面的重要性。


zbMATH中的参考文献(参考文献103条,1标准件)

显示103个结果中的1到20个。
按年份排序(引用)
  1. 莫霍夫,安德烈;米切尔,尼尔;西蒙·佩顿·琼斯:《按菜单构建系统:理论与实践》(2020)
  2. 范多恩,弗洛里斯;埃布纳,加布里埃尔;Lewis,Robert Y.:维护正式数学图书馆(2020)
  3. Hamana,Makoto:如何用二阶计算分析仪SOL证明方程理论的可判定性(2019)
  4. 施里杰弗斯,汤姆;奥利维拉,布鲁诺哥伦比亚特区。;瓦德勒,菲利普;Marntirosian,Koar:COCHIS:稳定和连贯的含义(2019年)
  5. 拜登,在ılım guneş;珠穆特,巴拉克A。;拉杜尔,亚历克赛·安德烈耶维奇;Siskind,Jeffrey Mark:机器学习中的自动差异化:调查(2018)
  6. 本德科夫斯基,麦基;格里吉尔,卡塔兹纳;Tarau,Paul:封闭简单类型(\lambda)的随机生成——术语:逻辑编程与Boltzmann采样器之间的协同作用(2018)
  7. 法图鲁,Panagiota;Kallimanis,Nikolaos D.:锁振荡:提升并发数据结构的性能(2018)
  8. 石井,广美:嵌入Haskell的纯功能计算机代数系统(2018)
  9. Orchard,Dominic:container functors和comonads的复杂性边界(2018)
  10. 谢赫,阿米尔;达什提,穆罕默德;Koch,Christoph:查询引擎中基于推拉的循环融合(2018)
  11. 斯佩克特·扎布斯基,安塔尔;斯佩克特,唐纳德:薛定谔的斑马:将相互信息最大化应用于图形半色调(2018)
  12. 安志勇;Vezzosi,Andrea:使用Prolog的多态类型系统的可执行关系规范(2016)
  13. 布雷特纳,约阿希姆;艾森伯格,理查德A。;佩顿琼斯,西蒙;魏里奇,斯蒂芬妮:《哈斯凯尔的安全零成本强制》(2016)
  14. 迪特尔,M。;Horstmeyer,T。;鲁根,R。;Berthold,J.:Eden中的骨架组成与稳定过程系统(2016)
  15. 唐恩,保罗;莫雷尔,卢克;阿里奥拉,泽娜·M。;西蒙·佩顿·琼斯:《作为编译器中间语言的顺序演算》(2016)
  16. 吉本斯,杰里米:理解戒指。在菲尔·瓦德勒60岁生日之际(2016年)
  17. Kapfer,Simon:(K3)曲面上点的Hilbert格式积分上同调中的cup积(2016)
  18. 西瓦拉马克里什南,K.C。;哈里斯,蒂姆;马洛,西蒙;西蒙·琼斯(Simon Jones,2016年版)
  19. 黑山,曼努埃尔;培尼亚,里卡多;Sánchez Hernández,Jaime:验证条件生成的通用中间表示(2015)
  20. 牛顿,瑞安R。;福克,彼得P。;Ali Varamesh:自适应无锁映射:纯功能到可扩展(2015)