铁路运营的演绎验证
1. 引言
在铁路运营领域,确保系统的安全性至关重要。本文将介绍如何使用抽象行为规范语言(ABS)对铁路运营进行建模和验证。通过这种方式,我们可以将铁路运营的复杂规则和行为形式化,从而更准确地分析和验证系统的安全性。
2. 抽象行为规范语言(ABS)
2.1 语言概述
ABS 是一种用于分布式系统的建模语言,其设计重点在于可分析性。它的语法和语义与 Java 相似,以提高可用性。以下是 ABS 的主要语言特性:
- 严格封装的对象 :不同对象之间的通信仅通过方法调用进行。对象的所有字段都是私有的,即使是同一类的其他实例也无法访问,并且没有静态字段。这确保了对象的堆内存仅由其自身的进程访问。
- 带未来值的异步通信 :异步调用通过语句 Fut<T> f = o!m(e)
进行调度,其中方法 m
在存储在 o
中的对象上以参数 e
调用。调用后,调用者获得未来值 f
并继续执行而不中断。未来值是被调用进程的句柄,可以传递。当被调用进程终止时,其返回值可以通过关联的未来值访问。
- 协作调度 :在 ABS 中,每个对象最多只有一个活动进程。运行中的进程不能被抢占,只有在挂起或终止时才会放弃控制权。因此,ABS 建模者可以明确控制进程的交错执行。活动进程通过等待保护条件来挂起自身。保护条件可以是未来值( await f?; <