定制化:为动态类型的 SELF 语言优化编译器技术
来源:dl.acm.org — 1989-06-01
📋 概述
这是 Chambers 与 Ungar 发表于 PLDI '89 的经典论文。动态类型面向对象语言对程序员友好,却因缺乏静态类型信息而牺牲性能。作者提出一系列从“无声明”程序中提取静态类型信息的技术:为每个过程按接收者类型编译多份副本,使接收者类型在编译期绑定;预测那些静态未知但很可能的类型并插入运行期类型测试加以验证;拆分调用,为每条控制路径生成按该路径具体类型优化的副本。将这些技术与编译期消息查找、激进内联及传统优化结合,使动态类型 OO 语言性能翻倍。
🔑 核心要点
- 论文出自 PLDI '89,作者为 Craig Chambers 与 David Ungar
- 为同一过程按接收者类型编译多份定制副本,在编译期绑定类型
- 预测静态未知但可能的类型,并插入运行期类型测试验证预测
- 通过拆分调用,为每条控制路径生成按该路径类型优化的副本
- 结合编译期消息查找与激进内联,使动态类型 OO 语言性能翻倍
💡 金句
将这些新技术与编译期消息查找、激进的过程内联以及传统优化结合,使动态类型面向对象语言的性能翻了一倍。
👍 0
👎 0
← 返回 Lobsters 首页