TLA+ 《Specifying Systems》翻译初稿——Section 3.3 Types: A Reminder(类型:注意)

本节着重指出TLA+是一种类型无关语言

如第3.1节所定义,变量 v v 在规约 S p e c Spec 中的类型为 T T 当且仅当 v T v \in T S p e c Spec 的不变量。因此, h r hr 在小时时钟规约 H C HC 中具有类型 1..12 1..12 。此断言并不意味着变量 h r hr 只能假定在 1..12 1..12 的范围内取值,因为状态是对一组变量随机赋值的操作,因此也存在 h r hr 值为 2 \sqrt{-2} 的状态,故而上述断言只是说在每一个满足公式 H C HC 的行为中, h r hr 的值都是 1..12 1..12 中的元素。

如果您对编程语言中的类型很熟悉,那么TLA+允许变量取任意值的特性看起来就很奇怪了。为什么不将状态限制为变量只能取合适类型的值呢?换句话说,为什么不在TLA+中引入类型系统?这个问题就说来话长了,我们在第6.2节会进一步阐述这个问题。现在,请记住TLA+是一种“类型无关”语言,类型正确性只是在特指不变量属性时的说法,给公式赋名 T y p e I n v a r i a n t TypeInvariant 也不会赋予其特殊性。

发布了4 篇原创文章 · 获赞 1 · 访问量 5512

猜你喜欢

转载自blog.csdn.net/robinhzp/article/details/103890935