理解操作语义

  • 本文关键字:操作语义 semantics
  • 更新时间 :
  • 英文 :


我有这个推导

(b,σ)→false  (skip,σ)→σ
(if b then c;w else skip)→σ

(上面一行是先决条件,下面一行是表达式)

表达式的意思是:

如果b为True,则执行命令c,否则执行命令w并跳过,

如果b为True,则执行命令c和命令w,否则跳过。

中间的分号把我弄糊涂了?!

还有,为什么我不必在前提条件中包含c ?

谢谢。

每个操作语义都是不同的,问题没有指定上下文,所以我只能猜测答案。

我将if b then c; w else skip解析为if b then {c; w} else skip,即问题的第二种解释。这个推导似乎是关于b为假的情况,所以没有提到c,因为如果b为假,则不执行c。之所以提到skip,是因为它被执行了。

这只是回答了你的部分问题,然而:c不包括在先决条件中,因为它不依赖于先决条件。不知何故,我也无法理解第二行中的w。此外,这个问题可能跑题了,因为它更多的是关于计算机科学而不是实际的编程。