我在Mac上使用的是Frama-c的氮版本,似乎无法使用 “集合”逻辑,如ACSL手册中所述,例如,我无法声明 一个ghost变量,如“// @ ghost set< integer> someSet;”。
frama-c程序总是抱怨在声明一个集合的行中出现语法错误,无论如何。
我也试过“Set”而不是“set”,其他类型代替“integer”(例如“char *”)并指定“// @ open set;”导入模块。
也许我需要指定一些命令行选项?执行“frama-c -kernel-help”虽然不清楚它会是什么。
或许Mac版本(我下载了英特尔二进制版本)已经过时了,我应该编译最新的源代码?
谢谢,最好的问候,
爱德华
答案 0 :(得分:2)
ACSL是一种独立于Frama-C的注释语言,尽管有些人同时使用它们。从在Frama-C插件中使用ACSL的角度来看,有三个级别的定义/实现,您需要这三个级别才能使用功能:
同一区别的另一种解释是here。
我无法在“// @ ghost set someSet;”中声明一个ghost变量。
在您的情况下,部分实现的功能似乎不是那么多集合(在快速查看后似乎在前端实现),而是ghost代码,目前只能使用C构造和类型。
或者Mac版本(我下载了英特尔二进制版本)是 过时了,我应该编译最新的源代码?
您目前拥有最新版本。