几天来,我一直在尝试解决WHJ Feijen和AJM van Gasteren所著的“计算机科学专着-多种编程方法”一书中的练习21,但是我有点儿困惑,因为我们的老师告诉我们使用拓扑的引理来通过断言和警戒跳过来解决这个问题。
如果有人熟悉这本书以及证明这些练习的方式,那就太好了。
锻炼21
考虑以下多程序,其中包含23个类型A的组件和47个类型B的组件。
┌───────────────────────────────────────┐ │ Pre: S = 0 │ ├───────────────────┬───────────────────┤ │ A: *[ S := S+1 ] │ B: *[ S := S-1 ] │ └───────────────────┴───────────────────┘
仅使用受保护的跳过来同步组件,以使0 <= S <= 100将是系统不变的。
我尝试为每个组件(Ai和Bi)添加索引,但是为了证明局部和全局正确性并不是很好。
仅使用受保护的跳过来同步组件,以使0 <= S <= 100将是系统不变的。