分布式进程的构造和分析
设计可靠协议和系统的软件工具

CADP新闻稿——10号
2018年1月18日

此新闻稿可从CADP主页.


目录

1.2017年CADP进展

本页总结了CADP工具箱从用户和软件开发人员社区的观点。其他成果,包括科学进展、出版物、针对工业问题的CADP,以及基于CADP可在CONFACS团队的年度活动报告中找到。

2017年,CADP的发展稳步推进。遵循2013年建立的月度滚动发布模型,12个版本的CADP已于2017年发布。从版本2017-a到版本2018-a,已经修复了37个错误,并带来了69项改进。

右边的图表给出了CADP的各个组成部分。努力不是以时间来衡量的,而是以基于合理假设,历史文件的行数变化涉及的越多,描述它所需的行就越多。

2.主要增强功能概述

本节总结了CADP。有关更多详细信息,请参阅CADP更改列表并发送至CADP分发中提供的历史文件。
CAESAR和CAESAR。ADT公司

缓冲区溢出和两次越界数组访问已修复在CAESAR和CAESAR中。ADT公司。还有两个内存分配错误已在CAESAR中修复。ADT公司。后一个工具现在生成C代码当常量的计算在运行时失败时,可以更好地进行诊断(例如,当它触发异常信号或排气时堆栈或堆内存)。

有关详细信息,请参阅历史记录条目:#2290 #2298 #2299 #2326 #2355.

演示

Demo_05已修改为使用LNT中异常的新语法语言。demo_12的LOTOS和LNT规范(“消息验证器算法”)已根据所获得的精细知识进行了全面修订通过将此密码函数建模为术语重写系统[Garavel-Marsso-17].LNT规范也进行了扩展,以纳入测试国际标准ISO 8730和8731-2中给出的矢量。生成的规范最初太大,无法编译,LNT2LOTOS的增强功能现在已成功处理翻译。演示19(“生产单元”)已经简化,现在已经有了完整的文档在最近的出版物中[Garavel-Serwe-17].

有关详细信息,请参阅历史记录条目:#2284 #2285 #2287 #2294 #2318.

经验

EXP.OPEN现在有两个新选项“-prob”和“-rate”用于处理概率跃迁和随机跃迁;没有这些期权、概率和随机转换被视为普通转换(这使EXP.OPEN能够用于实现替代语义,例如交互式概率链,其中概率转换使用全局时钟同步)。因此,以前的“-ratebranching”选项已被替换为“-速率-分支”。

此外,有关同步向量的错误消息也被制作得更多precise和EXP.OPEN对只包含概率或随机的空白与意外同步过渡。EXP.OPEN中修复了两个错误,样式文件已添加,以便主流文本编辑器支持EXP格式。

有关详细信息,请参阅历史记录条目:#2301 #2302 #2304 #2305 #2307 #2308 #2340 #2353.

LNT公司

2016年启动的“更安全”LNT例外2017年完成:闸门和例外的两个概念在LNT过程和LNT功能中统一。的静态语义LNT不再要求变量和异常共享相同的名称空间。

LNT现在允许简单循环(形式为“loop…end loop”,无循环标签nor“while”条件)。

杂注命名为“comparedby”、“external”、“implementedby”、“iteratedby”,“printedby”和“representedby”不再是保留的LNT关键字,这意味着现在允许声明具有以下内容的LNT标识符名称。添加了两个新的类型杂注“!card”和“!bits”以指定将给定类型的值存储在“hash-consing”表中。

LNT2LOTOS参考手册,其中包含定义对LNT语言进行了多方面的修改、丰富和简化。最近的出版物[Garavel-Lang-Serwe17]介绍了LNT定义背后的历史背景和动机。

并行地,LPP预处理器和LNT2LOTOS转换器实现了LNT语言,在很多方面都得到了增强。此外到9个错误修复,已进行了以下增强:

  • LPP现在更简洁地实现LNT字符串。
  • LPP自动将“.lnt”扩展名添加到输入和输出文件如果缺少此扩展名。
  • 计算在每个函数或这个过程变得更加精确,LNT2LOTOS现在对闸门发出警告已声明但从未使用的。
  • LNT2LOTOS执行更严格的编译时检查,生成专用的错误消息,而不是生成无效的LOTOS代码随后被CAESAR和/或CAESAR拒绝。ADT公司。此外,还有几个错误LNT2LOTOS在统计分析阶段显示的消息有得到了增强。
  • 已将LNT功能转换为LOTOS操作通过消除不可访问或冗余LOTOS显著改进公式,删除未使用的辅助LOTOS操作,简化某些LOTOS方程的前提,在“if-then-else”指令和优化长任务序列与断言交织在一起。因此,LNT2LOTOS现在更快,使用更少内存,生成更紧凑的LOTOS代码,可以编译更大的LNT以前无法处理的规范。

有关详细信息,请参阅历史记录条目:#2276 #2278 #2279 #2281 #2283 #2286 #2288 #2289 #2291 #2292 #2295#2300 #2310 #2314 #2317 #2319 #2321 #2322 #2323 #2325 #2327 #2332#2342 #2343 #2346 #2347 #2350 #2352 #2354 #2361.

MCL和XTL

除了两个错误修复之外MCL_EXPAND和XTL_EXPAN变得更加精确和严格。这个XTL库“walk”和“walk_nice”已被修改为不触发最近引入的额外警告。

有关详细信息,请参阅历史记录条目:#2348 #2365 #2366 #2368 #2371.

打开/CAESAR

新的caesar_TYPE_FORMAT丰富了“caesar_standard”库类型及其相关的基元,以及两个新函数用于处理POSIX信号的CAESAR_SET_SIGNALS()和CAESAR_RESET_SIGANLS()(包括SIGSEGV,即分段冲突)。

20年来一直保持稳定的“caesar_graph”界面modified:它的两个函数CAESAR_FORMAT_STATE()和CAESAR-FORMAT_LABEL()它的两个函数CAESAR_MAX_FORMAT_STATE()和CAESAR_MAX_FORMAT_LABEL()已从界面中删除。相同的更改也适用于所有其他函数CAESAR_FORMAT_*()和OPEN/CAESAR库的CAESAR_MAX_FORMAT_*()。所有OPEN/CAESAR编译器、应用程序工具和演示示例已修改为反映这些变化。

有关详细信息,请参阅历史记录条目:#2296 #2297 #2320 #2329 #2330 #2331 #2334 #2344 #2345 #2358.

网络

为了简化“caesar_network_1”的代码,进行了许多更改通信库,它是分布式验证的主干CADP的工具,以及其他工具(如BCG_MIN)的代码,但大多数最终用户无法直接观察到这些变化。除了在“caesar_network_1”中修复了两个错误,在BES_SOLVE中修复了另外两个错误工具、各种工具显示的错误消息和统计信息BES_SOLVE的“-stat”选项生成的信息已生成更简洁,信息量更大。

有关详细信息,请参阅历史记录条目:#2277 #2280 #2282 #2306 #2328 #2333 #2359 #2372 #2373.

SVL公司

添加了一个新选项“-v”以从命令行设置SVL变量(类似于“awk”或“make”)。调试SVL脚本变得更加容易:SVL的“-debug”选项现在在shell命令发出后立即停止执行(例如,CADP工具或Unix命令)以非零退出状态终止,以便在出现问题时立即检测到问题。

此外,SVL现在执行更严格的语义检查,确保部分订单减少选项传递给EXP.OPEN(即选项用户显式设置,SVL自动计算选项来自EXP组合表达式的上下文)并不矛盾。

有关详细信息,请参阅历史记录条目:#2309 #2311 #2312 #2315 #2336 #2364 #2374.

TGV公司

测试生成工具TGV已被修订。默认情况下,TGV现在不那么冗长,只显示最重要的信息,但前者仍可以使用选项“-verbose”保留行为。一个新选项“-monitor”允许实时跟踪测试用例的生成进展。许多警告和错误消息都得到了增强。各种错误,特别是缓冲区溢出,已经修复,内存分配结果现在受到严格控制。

有关详细信息,请参阅历史记录条目:#2337 #2338 #2339 #2341 #2349.

港口

已持续努力确保CADP在主流计算平台。尤其是RFL和TST脚本文档也不断更新。更改为引入CADP以应对最近的C编译器(如GCC 6和Clang)并解决Solaris上可用的“indent”命令的问题以及macOS/Xcode。

在Linux上,CADP被移植到最新版本的Centos、Debian 9、,和Ubuntu 17.04。对各种桌面环境的支持Linux发行版中可用的(Gnome、KDE、Mate等)得到了改进。

在macOS上,支持过时版本(从Mac OS X 10.6“雪豹”OS X 10.9(包括“小牛队”)被撤回。支持macOS 10.13添加了“High Sierra”。已采取初步步骤准备64位macOS上的CADP版本。

在Windows上,支持过时版本(Windows XP和Vista)下降。Cygwin软件变更后(2017年2月),必须调整CADP,因为Cygwin管道和相关管道的性能命令(例如“awk”、“grep”和“sed”)变得不同了。数量众多对CADP进行了更改,以支持Cygwin不是安装在C:/中,但位于不同的文件夹中。最后,初步步骤已向64位版本的Windows CADP发展。

有关详细信息,请参阅历史记录条目:#2293号2303号2313号2316号2324号2335号2351号2356号2357号2360号2362#2363 #2367 #2369 #2370 #2375 #2376 #2377 #2379 #2380 #2381 #2382.

3.确认

我们非常感谢以下科学家,他们为我们提供了关于CADP使用的宝贵反馈和建议:

以及我们可能忘记的所有其他人。


返回CADP主页