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

CADP新闻稿-编号15
2023年1月27日

此新闻稿可从CADP主页.


目录

2022年CADP的进展

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

2022年,CADP的发展稳步推进。以下2013年建立的月度滚动发布模型,共有12个版本CADP已于2022年发布。从版本2022-a到版本2022-l,修复了17个错误,带来了71项改进。

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

在开发CADP的同时,我们付出了巨大的努力完全重写特拉安用于构建大多数CADP编译器和转换器的编译器。三种版本(3.63.7、和3.8)TRAIAN的已于2022年发布。我们的项目是逐步统一LNT和由TRAIAN支持的LOTOS NT语言最终包含在CADP中未来版本的TRAIAN,将提供本机编译器前端用于LNT。

2.主要增强功能概述

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

除了BCG_READ手册页中的错误修复之外,词汇表和BCG_CMP和BCG_MIN的选项名称澄清如下。这个"-分支选项现在被记录为“保持分歧”分支互模拟”而非发散敏感分支相互模拟”。现有选项“-尖锐的“已重命名为"-分裂的(“保持发散的尖锐互模拟”),而"-尖锐的“现在实现了sharp互模拟的变体不保留分歧。SVL中也做了类似的更改,现在区分“急剧下降", "缩分","尖锐的比较“、和”divsharp比较".

有关详细信息,请参阅历史记录条目:#2792 #2804 #2806

演示

除了在演示09中修复了一个错误外,演示04、26、27和33已经增强并从LOTOS转换为LNT。另外,演示24的LOTOS代码被缩短了21%,仍保留其语义演示30变得更具可读性。

有关详细信息,请参阅历史记录条目:#2763 #2765 #2790 #2813 #2814 #2818 #2830 #2832 #2846 #2848

LNT公司

LNT语言继续发展成为更好的语言并与支持LOTOS NT语言的TRAIAN编译器。2022年,LNT发生了以下变化:

  • 带有“!外部的“pragma现在可能有一个空体。
  • 带有“!外部的“pragma现在可能有一个空(而不是“无效的“)车身。
  • 二进制常量必须以“0b”开头,而不是以字母“0b”开头“B”可能被误认为是8。
  • 八进制常数必须以“0o”开头,而不是以字母“O”开头可能会被误认为是零。
  • 类似地,十六进制常量必须以“0x”而不是“0x”开头。
  • 实数的尾数可能不再以点开头,例如。,“.01”应写为“0.01”。
  • 实数的尾数可能不再以点结尾,例如。,“12.”应写成“12.0”。
  • 非空数字不能再以零开头,例如“03.4”应该写为“3.4”(但“0.8e5”仍然有效)。
  • 两个新类型杂注“!指针“和”!无指针“已经介绍。
  • 同构于自然数的LNT类型可能不再具有“!指针"杂注。
  • "虽然“和”对于“循环现在可能有一个可选标签可用于“打破“声明。
  • 评估“关键字现在在中是可选的(不鼓励使用)四分之三的情况。
  • 名称为特殊标识符(例如+、*等)的任何函数必须现在返回一个结果,没有“外面的", "输出无功功率“,或"输入输出“参数。
  • 函数杂注必须携带有效的C标识符,并且可能不再包含“%s”(标识符名称替换),也不包含“%d”、“%i”、“%d”等。(位置编号替换)。
  • LNT模块标识符必须与其各自的文件名相同;现在,这种比较是区分大小写的(以前是不区分大小写)。
  • 带有更新子句,正在重复带套件",已被抑制。
  • 输出优惠中不再允许使用“!”符号,例如“PRINT(!X)”现在必须写入“打印(X)”。
  • “{}”不能再用作非结构化函数的名称。
  • “{}”不能再用作带参数的构造函数的名称。
  • 集合类型现在配备了预定义的操作“子集”检查集合包含。

LNT2LOTOS参考手册和LNT工具已更新为记录并实施这些更改。“upc”shell脚本已扩展以简化LNT程序的迁移。这些可以升级(自动或半自动),按顺序调用以下命令:

upc 2022-LNT-BIN-HEX-OCT<目录>upc 2022-LNT-REALS<目录>upc 2022-LNT-LEADING-ZEROS<目录>upc 2022-LNT-EVAL<目录>upc 2022-LNT-MODULE<目录>upc 2022-LNT-UPDATE<目录>upc 2022-LNT-EXCLAIM<目录>upc 2022-LNT-NONE<目录>

添加了一个名为LNT_MERGE的新工具,它将一个LNT程序作为输入,可能由几个LNT模块组成,并产生一个LNT作为输出包含在单个LNT模块中的程序。“.fnt”和“.tnt”文件,如果有,也会合并。此工具用于打包多模块LNT程序转换为非回归测试套件。

除了七个错误修复程序(一个在LNT2LOTOS中,一个在RNT_DEPEND中,另一个在UPC和LNT_MERGE中的四个),LNT2LOTOS转换器增强为如下所示:

  • 它检查为“!“pragma更大大于零。
  • 它检查为“!卡片“pragma更大超过一个。
  • 它生成的LOTOS代码不再导致某些GCC警告详尽的LNT模式。
  • 它警告位于无穷大之后的死代码““没有"打破”LNT过程中的子句。
  • 它警告“单位:var“使用前分配的工艺参数在无限中”“没有”打破".
  • 它检查在“C:xxx”杂注中,所有标识符“xxx”都是不同的和不是C关键字。
  • 它检查在“LOTOS:xxx”杂注中,所有标识符“xxx”是否不同和不是LOTOS关键字。
  • 它现在为有关不推荐使用的LNT的警告提供源代码行号句法特征。
  • 它警告使用这两种声明的LNT函数!外部的!由“LOTOS:xxx个"杂注,因为标识符“xxx”是(暂时)忽略。
  • 它不再为此类LNT函数生成LOTOS代码。
  • 它(暂时)禁止具有“外面的“或"输入输出“参数。
  • 它(暂时)禁止具有pre-("要求“)或后条件(”确保").

有关详细信息,请参阅历史记录条目:#2764 #2766 #2768 #2769 #2770 #2771 #2772 #2774 #2786 #2787 #2788 #2789#2793 #2795 #2802 #2803 #2807 #2809 #2811 #2815 #2816 #2817 #2819 #2820#2821 #2822 #2823 #2824 #2826 #2827 #2828 #2834 #2835 #2837 #2838 #2841#2843 #2850

LOTOS公司

除了修复X_BIT库中导致CAESAR警告的错误外。ADT、,CAESAR和CAESAR。LOTOS的ADT编译器得到了如下增强。

不再允许在特殊注释中使用“布尔", "“,或”真实的“作为C外部函数的名称。

修改了CAESAR生成的C代码,以减少稀疏代码检查器生成的警告。

CAESAR生成的C代码。修改ADT以减少数量夹板代码检查器生成的警告。

CAESAR生成的C代码。名称包含以下内容的LOTOS操作的ADT“\”(反斜杠)字符不再引起Gcc的警告。

有关详细信息,请参阅历史记录条目:#2778 #2780 #2781 #2782 #2791

MCL公司

除了关于EVALUATOR模型中内存分配的错误修复之外检查器中,CAESAR_SOLVE_1布尔分辨率库丰富了两种新的动态算法,命名为A10和A11。这些算法基于对布尔变量之间的依赖关系图进行深度首次搜索。算法A10(resp.A11)专门用于求解析取(resp。最小(相对最大)不动点符号的合取)方程块,如果在块。算法A10和A11比对应的算法A3消耗更少的内存和A4,允许在同一个方程式块上进行多次调用。

有关详细信息,请参阅历史记录条目:#2842 #2849

其他

所有CADP工具的源代码,以及由这些工具已经更新,以便系统地使用“布尔“类型和““和”真实的“stdbool.h”中定义的常量。

所有CADP工具现在都是使用最新版本的SYNTAX构建的编译器生成器和最新版本的TRAIAN。还有,垃圾CAESAR调用的收集器已从版本7.6.4升级到版本8.2.2。

在LNT文件上操作时,EUCALYPTUS图形用户界面,现在默认情况下预先选择MAIN进程,因此可以从用户。

GNOME文本编辑器(Gedit、Pluma等)的样式文件修改后不仅可以使用Gtk3,还可以使用Gtk4(更新)和Gtk5(即将推出)。

已为CADP支持的各种语言和文件格式。

CADP的文件在各个地方进行了更新和增强。

有关详细信息,请参阅历史记录条目:#2777 #2779 #2794 #2796 #2833 #2836 #2839

NUPN公司

CAESAR公司。BDD工具已升级到CUDD的3.1.0版本。工具扩展了四个新选项:“-电弧-pt", "-电弧-tp","-签名“、和”-签名-多个“;后两种选择显示NUPN校验和,该校验和不受任何位置排列的影响,转换和/或单元。

现有选项“-位置顺序“和”-单位阶“拥有提高了速度,缩短了生产时间,但更具辨别力结果。-并行位置CAESAR.BDD的速度也更快。

有关详细信息,请参阅历史记录条目:#2767 #2773 #2775 #2783 #2784 #2812 #2845

港口

除了六个错误修复(三个在Linux上,两个在Windows上,一个在macOS上),CADP工具得到了针对不同处理器的特定增强和操作系统。

关于macOS:CADP被移植到macOS 13“Ventura”,支持添加用于在带有ARM处理器的Apple机器上运行CADP。

关于SunOS:支持“sol86”体系结构(32位可执行文件Solaris和OpenIndiana)已停止使用,因为“sol64”体系结构(64位可执行文件)被认为已经足够了。

关于Windows:在Windows/Cygwin上安装CADP的说明进行了更新和简化,消除了对老式系统的依赖工具,如“bc”和“ed”。支持最新版本的GNU-tar(例如。,版本1.34)。修改了EUCALYPTUS图形用户界面以避免启动EMACS的Cygwin版本时出现问题。最后,已经进行了初步更改,以支持64位Windows可执行文件。

有关详细信息,请参阅历史记录条目:#2776 #2785 #2797 #2798 #2799 #2800 #2801 #2805 #2808 #2810 #2825 #2829 #2831 #2840 #2844 #2847

3.确认

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

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


返回CADP主页