选择性CPS转换:控制操作与程序优化
192 浏览量
更新于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万+
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常