SLDDS问题的离散化与形式化.pdfVIP

  • 2
  • 0
  • 约5.75万字
  • 约 22页
  • 2019-02-27 发布于江苏
  • 举报
第1章 分离逻辑简介 分离逻辑是一个研究命令式计算机程序推理的新的形式系统,它对 Hoare 逻辑的断 言语言和程序语言进行扩充,使得新的形式系统能更好地描述计算机当前的内部存储状 态。创立分离逻辑的最初目标是为了研究包含共享可变数据结构(shared mutable data structure )的程序推理,在近几年的研究中,它已被推广到了更加广阔的研究领域,如 信息隐藏([24])和共享变元的并发([4])等。本章中我们将简单介绍 SL。 1.1 基本程序语言 在介绍 SL 的程序语言之前,先介绍程序语言中用到的表达式(expression )及布尔 表达式(boolexpression ),具体定义如下: exp :: 0 1 2 var =− exp exp + exp exp − exp exp × exp bool exp :: true false exp exp exp ≠ exp ¬ bool exp bool exp ∧ bool exp bool exp ∨ bool exp bool exp ⇒ bool exp bool exp ⇔ bool exp 分离逻辑的程序语句如下定义: C :: skip var : exp C1 ;C2 if bool exp then comm else comm while bool exp do comm var : cons ( exp , , exp ) allocation var : [ exp ] lookup [ exp ] exp mutation dispose exp deallocation [e] e 这里 表示内存地址 中的内容。上述程序语言是分离逻辑的基本程序语言。它 比Hoare 逻辑多出后面四个关于对数据结构进行操作的语句。我们将在第 4 节中介绍程 序语句的一些扩充。 1.2 SL断言的语法、语义及推理规则 与 Hoare 逻辑一样,断言用来描述计算状态。在此我们先给出 SL 断言的语法,具 体定义如下: 3 assert :: bool exp =¬ assert assert ∧ assert assert ∨ assert assert ⇒ assert assert ⇔ assert ∀ var . assert ∃ var . assert emp exp exp assert ∗ assert assert −∗ assert SL 的语言比Hoare 逻辑多了如下几种新形式的断言: emp,e e ,P ∗P ,P −∗P 1 2 1 2 常用如下简写:e −∃x .e x ,x 不在e中自由出现 e e , e

文档评论(0)

1亿VIP精品文档

相关文档