Frama-C简单的正式规范

时间:2015-02-12 16:55:40

标签: c frama-c

我正在使用Frama-C正式规范两种方法:

/*@ requires n >= 0;
    ensures result >= 0;    
    terminates n == 0; 
 */
int decimal_binary(int n)  
{
    int rem, i = 1, binary = 0;
    while (n != 0)
    {
        rem = n % 2;
        n /= 2;
        binary += rem * i;
        i *= 10;
    }
    return binary;
}
/*@ requires n >= 0;
    ensures result >= 0;    
    terminates n == 0; 
*/
int binary_decimal(int n) 
{
    int decimal = 0, i = 1, rem;
    while (n != 0)
    {
        rem = n % 10;
        n /= 10;
        decimal += rem * i;
        i = i << 1;
    }
    return decimal;
}

以上就是我目前的工作后得到的。我不知道如何描述变量和循环。

0 个答案:

没有答案