选择性CPS转换:控制操作与程序优化
64 浏览量
更新于2024-06-17
收藏 533KB PDF 举报
"选择性CPS转换:控制操作,延拓和选择性的程序转化"
本文主要探讨了选择性控制传递风格(CPS)转换的概念,这是一种优化编程语言转换的技术,特别是在处理控制操作如"调用当前延续"和"抛出"时。CPS转换通常用于确保函数的连续传递和一致性,但并非所有函数都需要延拓,只有涉及计算结果的函数才需要。作者拉塞·尼尔森提出了一种选择性的CPS转换方法,旨在只转换那些具有控制效应的部分,而保留直接风格的程序其余部分。
1. 选择性CPS转换
传统的CPS转换会将整个程序转化为CPS形式,即使某些部分并不需要延拓。选择性CPS转换则是基于程序的行为信息,仅转换那些涉及到控制转移的函数和表达式,这样可以避免不必要的复杂性和性能损失。
2. 控制操作和效应
控制操作,如调用当前延续和抛出异常,是程序中的关键控制流构造。这些操作对程序的执行路径有直接影响,因此在转换中需要特别处理。选择性转换考虑这些控制效应,只对它们进行CPS转换,而让其他无控制效应的代码保持原样。
3. 形式化和仿真理论
选择性CPS转换被形式化为非操作语义和M`alaPlotkin的仿真理论。这为转换的正确性和效率提供了数学基础,确保转换后的程序能够正确模拟原始程序的行为。
4. 相关工作
选择性CPS转换的思想并非新颖,之前的研究如Danvy和Hatteryman的工作已经涉及到基于严格性分析的选择性转换,以及基于严格性和非终止性结果的处理。此外,Kim、Yi和Danvy在SML的实现中也应用了类似方法来减少CPS转换的开销,但他们的工作重点是异常处理而非控制操作。
5. 本地CPS转换
Reppy等人的近期工作在直接风格的编译器中引入了局部CPS转换,目的是优化嵌套循环和其他复杂控制结构,这与选择性CPS转换的目的相似,都是为了提高转换效率。
选择性CPS转换是一种有针对性的优化技术,旨在提高程序转换的效率,特别是在处理控制操作时。通过对程序行为的分析,这种转换方法可以智能地决定哪些部分应该转换,从而在保持程序正确性的同时减少不必要的转换开销。
2018-04-12 上传
638 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
cpongm
- 粉丝: 5
- 资源: 2万+
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载