块、过程与并发对象语言的语义解析
1. Bip语言的小步语义
Bip语言是在Bims语言基础上扩展了块和过程的语言。此前我们了解过Bip语言的大步语义,现在我们将探讨其小步语义。小步语义是对Bims语言小步语义的扩展,更确切地说,是对语句小步语义的扩展。
1.1 运行时栈
我们采用环境 - 存储模型。变量环境集合定义为:
$EnvV = Var ∪{next} ⇀Loc$
存储集合定义为:
$Sto = Loc ⇀Z$
过程环境的定义取决于我们选择的作用域规则。
在小步语义中,配置表示语句执行的中间阶段。与大步语义不同,小步语义需要描述单个执行步骤,这些步骤可能是过程调用或块的开始,可能涉及新的临时绑定。因此,转换形式为:
$\langle S, bindings\rangle⇒\langle S’, new bindings\rangle$
为了跟踪当前有效的绑定,我们引入运行时栈的概念。运行时栈$envl$是一对对$(envV, envP)$的列表,即$envl$是运行时栈集合$Envl$的元素:
$Envl = (EnvV × EnvP)^*$
运行时栈的顶部元素是当前有效的$(envV, envP)$对。每当进入新的作用域(如进入块或调用过程)时,我们将新的$(env’_V, env’_P)$对压入栈顶。
1.2 声明
变量和过程声明的语义与大步语义相同。声明应被视为一个不可分割的单步操作,执行声明时,会为所有提及的变量分配存储,并记录过程体代码的地址。
过渡关系是为简单变量环境定义的,这就足够了
超级会员免费看
订阅专栏 解锁全文
2万+

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



