[英]WP plugin: Alt-Ergo Syntax Error
对于下面的C函数,我从Alt-Ergo获取了最新版本的Frama-c的语法错误。
frama-c -wp -wp-rte -lib-entry RoundNearestFive.c -wp-out temp -wp-model="nat, real"
我不确定在此生成的行中出了什么问题:
...
let r_0 = dat_0 / 5.0e0 : real in /* syntax error here */
...
typedef unsigned short int uint16;
/*@
@ requires 0<=dat<= 300;
*/
uint16 RoundNearestFive(float dat)
{
uint16 result= 0;
float fra = 0;
result = (uint16)(dat/5);
fra = dat - (float)result*5; // fractional part of the input
if (fra < 2.5)
result = (uint16) (dat-fra);
else
result = (uint16) (dat+(5-fra));
return result;
}
我在下面的公式上尝试了Alt-Ergo(0.95.2版和主干),但没有语法错误。 您是否在使用旧版本的Alt-Ergo? 或语法错误可能在其他地方。
-
逻辑dat_0:真实
目标g:让r_0 = dat_0 / 5.0e0:实于(*此处语法错误*)否
WP用户手册明确指出不支持0.95之前的Alt-Ergo版本(请参阅第21页)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.