程序设计语言中的继续:理论和实践

来源 :中国科学院软件研究所 | 被引量 : 0次 | 上传用户:wcf2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
继续表示程序在某个执行状态下的剩余计算抽象。继续在计算机科学的各个分支中都有重要的应用。本文讨论继续在程序设计语言中的理论与应用。   继续传递风格(CPS)变换是表达λ演算和函数式程序设计语言语义的重要手段。作为活性语言基础的传值调用策略CPS变换已经被广泛研究。而惰性语言采用的传名调用策略CPS变换研究则稍显不足。本文在理论基础方面着重讨论常数传名调用语言的CPS变换理论。   在区分常数语言中,本文给出传名调用求值上下文及在此基础上的项和求值上下文的CPS变换,证明了Plotkin的模拟定理。在证明过程中,本文提出了两种证明思路。本文对两种证明思路进行对比,也和相关工作进行了比较。在一般常数语言的CPS变换讨论中,本文针对一般常数的动态归约特征提出了二值传递变换思想,并在此基础上给出了CPS变换闭语言。相比Plotkin的工作:本文提出的二值传递CPS变换表达更简洁、CPS语言是归约闭语言、归约过程中产生的额外归约更少、且是完全风格的CPS变换。本文也纵向比较了区分常数语言和一般常数语言在求值归约以及CPS模拟方面的区别。   继续在函数式程序设计语言中已经得到广泛的实现和应用。函数式语言的继续操作符由特定的系统基本操作符提供。主流面向对象语言并不提供这些控制操作符,仅仅提供基本的异常处理操作符try/catch/throw等。如何在主流面向对象语言上运用异常处理技术实现系统抽象控制栈的保存和重载,即,如何实现继续对象,成为重要的应用研究问题。本文在实践方面着重讨论面向对象语言的控制栈获取和编程技术。   函数式程序设计语言的A范式被证明是CPS变换在编译优化过程中的重要产物,是函数式应用程序的线性控制范式。本文分析并给出了命令式语言对应的线性控制范式:程序的切片A范式(FANF)。首先,讨论了南程序的优化CPS表示到FANF的变换过程。定义基本的优化CPS表示语言,给出求值语义,给出由优化CPS语言到FANF的变换步骤,最后形式给出切片A范式文法。由于作为变换源语言的优化CPS语言无法建模主流语言的变量赋值副作用,本文又讨论了直接从命令式语言出发获取FANF的办法。建模一个模拟Java的小命令式语言,给出变换步骤,并最终给出目标FANFo本文也分析讨论了两种方法获取FANF的异同。   在FANF程序之上,本文给出了添加异常处理模块和继续帧定义获取程序继续对象的方法。本文归纳能应用此方法得到程序继续的语言公共特征,给出抽象的、一般的系统类设计。本文也讨论了具体语言实现继续的特殊技术以及异常处理技术获取程序继续在程序尾递归优化中的作用。   本文最后讨论了面向对象语言的高阶控制编程技术。在获得FANF程序后,可以在程序系统栈上添加基础设施来实现程序的高阶控制编程。本文实现了高阶控制操作符run和fcontrol的标志控制系统。将同边树判定问题作为无标记标志控制系统的具体应用实例。本文也将标志控制系统扩展到带标记版本,并实现了一个多级的线程轮询调度器。实践证明,在获得FANF程序后,主流面向对象语言也可以和函数式程序设计语言一样应用高阶控制编程。
其他文献
现代编译器使用大量的优化来改善程序的性能,而某个特定的优化效果则主要依赖于对程序的静态分析,而这通常都是基于硬件架构的机器模型进行的,但是,当前处理器的硬件架构越来越复
随着技术和工艺的发展,处理器和存储系统的性能不匹配问题日益严重,已成为阻碍计算系统性能发挥的瓶颈。为了弥补二者问的性能差距,现代芯片中普遍引入了Cache,以期缓解这一问题
多媒体凭借信息量大的优势,在互联网上获得广泛的应用。突发性的大数据量传输和多种业务不加区分地竞争网络资源容易导致Internet拥塞。由此网络服务质量QoS成为研究热点和下
随着集成电路工艺特征尺寸不断缩小,芯片内部速度不断增加,时延缺陷(即影响电路定时行为但不改变电路在静态条件下的逻辑操作的缺陷)成为人们的广泛关注的问题。传统的测试方法
近年来,随着无线通信技术的不断发展,无线局域网已经得到了越来越广泛的应用。而高密度部署的无线网络便成为了发展的新方向。AP(无线接入点)是工作在由无线频谱所划分出的信道
人体姿态检测,即通过计算机在一幅包含人体的图像中自动地检测出人体,即输出人的整体或者局部肢体的结构参数,如人体轮廓、头部的位置与朝向、人体关节点的位置与部位类别。人体
新的计算模式,普适计算和全局计算,正在作为高度分布式和移动计算的计算模式展现出来。这篇论文探讨了在抽象层面上支持这些新型计算模式的适合的形式化基础,关注在进程移动单位
随着计算机技术的迅速发展,图像、声音等多媒体数据已经成为信息处理领域主要的信息媒体形式。特别是视频数据,由于能记录、再现空间和时间上的各种信息,使得人们能更加方便地获
串联质谱(Tandem Mass Spectrometry)是蛋白质序列鉴定的重要方法,其目标是从实验质谱来推断未知肽段的氨基酸序列。在此过程中,如何从一个肽段序列精确地预测出对应的理论质谱
虚拟机就是由真实机器和软件所组成的一个虚拟环境,虚拟机及相关优化技术的研究,在遗产代码移植、硬件设计、程序性能提高、网络应用、系统安全等方面都有重要的意义,已经成为是