PAT 2.9.0的新增功能
在这个版本中,发布了三个新模块:概率CSP模块、Orc模块和NesC模块。在用户界面、语言语法和验证算法方面有很多变化。因此,我们决定在它变得稳定之前将其作为测试版发布。
概率CSP模块
PCSP模块用概率行为扩展了CSP模块。通过在建模中引入概率选择,PCSP模块支持通过概率查询验证死锁、可达性和LTL属性。
兽人模块
Orc模块支持UT奥斯汀大学开发的Orc语言的建模和验证。这是一个测试版。需要更多的示例和测试。
NesC模块
NesC模块支持NesC语言的建模和验证。这是一个测试版。不久将支持NesC语言的更多语法。
语言更改
1具有CSP模块、RTS模块和PCSP模块支持子句以获取可达性属性。
为了进一步查询变量值,PAT允许用户在所有可到达的跟踪中查找某些表达式的最小值或最大值。下面的硬币更换示例显示了如何在可达性搜索期间最小化硬币数量。
var x=0;
var权重=0;
P()=如果(x<=14)
{
coin1{x=x+1;weight=weight+1;}->P()[]coin2{x=x+2;weight=weight+1
};
#定义目标x==14;
#断言P()以min(重量)达到目标;
2用户定义的数据结构支持“new”关键字。
Var<HashTable>x=新的HashTable(100);
用户定义方法的返回类型支持3个“字节”“短”。
但方法参数不支持。
支持3个嵌套if-then-else
if(cond){P}else if(cond2){Q}
GUI更新
搜索深度选项将从验证器中删除。我们实现了最短见证跟踪选项,以找到最短的反例或见证跟踪,用于死锁、可达性和细化检查。最短见证搜索算法基于宽度优先搜索。
模拟器添加了隐藏tau事件的选项。
绩效改进
1对细化验证算法进行了更新和改进。
2简化了并行执行。
其他
1用户手册更新为最新版本。
2细化检查算法中的错误修复
3 LTL安全检查算法中的错误修复
实现了4种LTL安全检查算法。
增加了PCSP模块和RTS模块的5个示例。
针对一些错误输入,改进了6个分析器。