WP插件:Alt-Ergo语法错误

时间:2014-01-08 18:45:22

标签: frama-c

对于以下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 */
    ...

正在分析的C函数

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;
}

2 个答案:

答案 0 :(得分:3)

我在下面的公式上尝试了Alt-Ergo(版本0.95.2和主干),但没有语法错误。您使用的是旧版本的Alt-Ergo吗?或者语法错误可能在其他地方。

-

logic dat_0:real

目标g:   令r_0 = dat_0 / 5.0e0:real in(*语法错误,这里*)   假

答案 1 :(得分:3)

WP user manual明确指出不支持0.95之前的Alt-Ergo版本(请参阅第21页)。