线性一阶函数式中间语言的深入解析
1. 引言
在编程语言的研究中,线性一阶函数式中间语言(IL)及其相关概念有着重要的地位。本文将围绕IL的语义、命令式解释、程序等价性、不变性、活性、一致性以及从IL到IL/I的翻译等方面展开详细探讨。
2. IL语义与命令式解释
2.1 IL语义
IL具有线性特性,每个项的执行要么将控制权传递给严格子项,要么应用一个永不返回的函数,这确保了不需要运行时栈来管理延续。语义转换会在事件 v = α 中记录系统调用名称 α 和结果值 v 。
2.2 命令式解释IL/I
为了将IL转换为运行时不需要函数闭包的命令式语言,引入了IL/I。在IL/I中,变量绑定被解释为命令式赋值,函数应用变为 goto ,参数传递是对参数名称的并行赋值。闭包被块 (x, s) ∈ B 取代,且块不包含变量环境,因此被调用的函数可以看到变量的所有先前更新。例如:
1 let x = 7 in
2 fun f () = x in
3 let x = 5 in f ()
1 let x = 7 in
2 fun f () = x in
3 fun g x = f() in
4 let y = 5 in g y
这两个程序在IL/I中都返回5,而在IL中计算结果为7。为了得到IL/I的小步关系 −→I ,将
超级会员免费看
订阅专栏 解锁全文
104

被折叠的 条评论
为什么被折叠?



