Skip to main content
QUICK REVIEW

[论文解读] A short introduction to program algebra with instructions for Boolean registers

J. A. Bergstra, C.A. Middelburg|arXiv (Cornell University)|Aug 13, 2018
Formal Methods in Verification参考文献 19被引用 11
一句话总结

本文提出了一种简化的、参数化的程序代数与线程代数框架,通过布尔寄存器指令实例化,以建模计算。它形式化了指令序列如何在位串上计算部分函数,表明辅助布尔寄存器可减少程序大小,并为在形式化代数环境中分析算法效率与等价性奠定了基础。

ABSTRACT

A parameterized algebraic theory of instruction sequences, objects that represent the behaviours produced by instruction sequences under execution, and objects that represent the behaviours exhibited by the components of the execution environment of instruction sequences is the basis of a line of research in which issues relating to a wide variety of subjects from computer science have been rigorously investigated thinking in terms of instruction sequences. In various papers that belong to this line of research, use is made of an instantiation of this theory in which the basic instructions are instructions to read out and alter the content of Boolean registers and the components of the execution environment are Boolean registers. In this paper, we give a simplified presentation of the most general such instantiated theory.

研究动机与目标

  • 为使用布尔寄存器指令实例化的程序代数与线程代数提供一种简化且聚焦的表述。
  • 形式化指令序列通过布尔寄存器执行计算的概念,以实现对算法行为的精确分析。
  • 建立基础,用于研究通过辅助寄存器实现的程序大小缩减,以及指令序列的计算等价性。
  • 支持在形式化代数环境中对算法复杂性与正确性进行严谨探究。
  • 实现对指令序列何时计算给定位串到位串的指定部分函数的精确形式化。

提出的方法

  • 使用程序代数(PGA)将指令序列建模为仅执行一次并随后丢弃的基本指令序列。
  • 应用基本线程代数来建模指令序列在执行过程中产生的行为。
  • 将PGA与线程代数的结合扩展,以建模指令序列与布尔寄存器之间作为服务的交互。
  • 引入布尔寄存器族的代数理论,以形式化多个寄存器及其相互作用的行为。
  • 将部分函数的计算定义为:指令序列在固定寄存器角色下,对定义域内所有输入产生正确输出。
  • 采用算法等价性与计算等价性关系,以比较指令序列并分析其结构与行为属性。

实验结果

研究问题

  • RQ1如何在布尔寄存器背景下,使用程序代数与线程代数正式定义并分析指令序列?
  • RQ2指令序列在何种条件下能正确计算位串上的指定部分函数?
  • RQ3辅助布尔寄存器在多大程度上可减少特定计算的指令序列大小?
  • RQ4算法等价性与计算等价性关系在捕捉两个指令序列表达相同算法的概念时有何差异?
  • RQ5计算长度为n的位串上的奇偶性、模2^n加法或非零性等函数所需的最短指令序列长度是多少?

主要发现

  • 具有辅助布尔寄存器访问能力的指令序列,可使用比无此类寄存器更短的序列计算长度为n的位串的奇偶性函数。
  • 对于Karatsuba乘法算法,当位串长度超过256时,其指令序列长度才短于长乘法序列。
  • 当存在向后跳转指令时,当位串长度超过2时,长乘法算法可用比标准版本和Karatsuba版本更短的指令序列表达。
  • 判断一个指令序列是否计算n位串上的非零性函数的问题,仅当指令序列长度接近最小可能长度时才可高效求解。
  • 计算等价性关系比算法等价性关系更粗糙,这意味着两个序列可能计算相同函数,但表达不同算法。
  • 该形式化框架支持对程序大小与正确性的精确分析,支持得出结论:在指令序列模型中,辅助数据存储可显著减少程序大小。

更好的研究,从现在开始

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

无需绑定信用卡

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