首页> 外文学位 >Formal verification of programs and their transformations.
【24h】

Formal verification of programs and their transformations.

机译:程序及其转换的形式验证。

获取原文
获取原文并翻译 | 示例

摘要

Formal verification is an act of using formal methods to check the correctness of intended programs. The verification is done by providing a formal proof on an abstract mathematical model of the program, with respect to a certain formal specification or property.;We present three case studies on using formal methods to verify programs and their transformations: (1) we use term rewriting and theorem proving to construct and validate a compiler from logic specifications to ARM assembly code; the equivalence of a source specification and the generated assembly code is proven mechanically with respect to the formal semantics; (2) we model, in an executable" declarative language TLA+, the Message Passing Interface (MPI) 2.0 library as well as C programs using MPI calls for parallel computations; and use explicit model checking to check the specifications and programs; and (3) we model CUDA kernel programs as symbolic logical formulas, and use constraint solving to automatically reason about these Graphics Processing Unit (GPU) kernels.;We have built a couple of unique verification tools to check intrinsic properties (e.g. race freedom for concurrent programs and translation correctness for compilers) and user-defined properties (e.g. functional correctness). Specifically, the presented compiler is the first trusted compiler translating logic specifications embedded in a theorem prover to low-level code; the MPI specification is the first attempt to provide executable semantics for a comprehensive set of message passing Application Programming Interfaces (APIs); and the CUDA verifier is the only existing formal symbolic checker for GPU kernel programs.
机译:正式验证是使用形式化方法检查预期程序的正确性的一种行为。验证是通过对程序的抽象数学模型提供正式证明来实现的,该数学模型涉及某个正式规范或属性。我们针对使用形式化方法来验证程序及其转换的三个案例研究:(1)我们使用术语重写和定理证明,用于构造和验证从逻辑规范到ARM汇编代码的编译器;关于形式语义,机械地证明了源规范和生成的汇编代码的等效性; (2)我们使用可执行的“声明性语言TLA +”对消息传递接口(MPI)2.0库以及使用MPI调用进行并行计算的C程序进行建模;并使用显式模型检查来检查规范和程序;以及(3 )我们将CUDA内核程序建模为符号逻辑公式,并使用约束解决方案自动推理出这些图形处理单元(GPU)内核。;我们构建了两个独特的验证工具来检查内在属性(例如并发程序的竞争自由性和编译器的翻译正确性)和用户定义的属性(例如,功能正确性),特别是,提供的编译器是第一个将定理证明器中嵌入的逻辑规范转换为低级代码的可信编译器; MPI规范是首次提供可执行文件一整套消息传递应用程序编程接口(API)的语义;并且CUDA验证程序是唯一存在的形式用于GPU内核程序的符号检查器。

著录项

  • 作者

    Li, Guodong.;

  • 作者单位

    The University of Utah.;

  • 授予单位 The University of Utah.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 157 p.
  • 总页数 157
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号