Skip to main content
QUICK REVIEW

[论文解读] Steering Fragments of Instruction Sequences

J.A. Bergstra|arXiv (Cornell University)|Oct 14, 2010
Formal Methods in Verification参考文献 26被引用 3
一句话总结

本文研究了为何在指令序列的控制片段中会出现非原子命题语句,尽管其可被转换为等价的原子形式。文章识别出隐含约束——如边际副作用、可检测副作用及实时动态性——这些约束可合理化其使用,主张编译器不应在不增加指令数量的前提下消除此类语句,且SCL为此类转换中的语义保持提供了形式化基础。

ABSTRACT

A steering fragment of an instruction sequence consists of a sequence of steering instructions. These are decision points involving the check of a propositional statement in sequential logic. The question is addressed why composed propositional statements occur in steering fragments given the fact that a straightforward transformation allows their elimination. A survey is provided of constraints that may be implicitly assumed when composed propositional statements occur in a meaningful instruction sequence.

研究动机与目标

  • 理解为何复合(非原子)命题语句会出现在控制片段中,尽管存在一种直接转换为原子形式的方法。
  • 识别出在有意义的指令序列中合理化使用非原子控制点的隐含约束。
  • 检查此类非原子语句在实践中是否必要,特别是在实时系统中或因副作用行为所致。
  • 主张编译器不应在不增加指令数量的前提下被期望消除非原子控制点。
  • 提出SCL(顺序条件逻辑)可作为控制点内命题语句语义保持转换的形式化框架。

提出的方法

  • 基于线程代数与极化过程代数构建指令序列的形式模型,其中原子控制点以+a或-a指令表示,用于评估命题原子并根据其布尔结果进行分支。
  • 应用带短路求值的命题代数,将条件复合算子x◃y▹z作为基本运算符,并由此推导出二元连接词。
  • 采用[13](表1)中的公理来形式化命题语句的行为,包括顺序求值下的结合律与分配律。
  • 分析控制点内原子动作的副作用,区分边际副作用与可检测副作用。
  • 考虑实时环境,其中外部测量(如传感器数据)可能因评估过程中的动态变化导致非回复稳定评估。
  • 提出将指令序列划分为‘应用’与‘系统工具’两类,以建模并发执行中副作用的可检测性。

实验结果

研究问题

  • RQ1为何非原子命题语句在存在转换为原子形式的可能下,仍持续存在于指令序列中?
  • RQ2在实际编程中,哪些隐含约束合理化了非原子控制点的使用?
  • RQ3在何种条件下,控制点内原子动作的副作用是可检测的,这又如何影响程序结构?
  • RQ4实时动态是否可能导致控制片段中命题语句的非回复稳定评估?
  • RQ5在不增加指令数量的前提下,将非原子控制点转换为原子形式是否可行或必要?

主要发现

  • 当副作用默认为边际性时,非原子控制点是合理的,尤其是在正常执行情况下。
  • 同一指令序列或命题语句内的其他原子无法检测到控制原子的副作用,但在受策略性交错控制的并发多线程环境中可被检测。
  • 在实时系统中,外部输入(如传感器数据)的动态变化可能导致命题语句评估结果不稳定,从而合理化非原子命题语句的使用。
  • 将非原子控制点转换为原子形式可能导致指令数量显著增加,使编译器强制执行此类转换变得不切实际。
  • SCL为控制点内命题语句的语义保持转换提供了形式化规范,支持原子与非原子形式。
  • 需通过针对实际程序的调查研究对这些约束进行实证验证,以确认其与当前命令式编程实践的相关性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。