程序中的未读变量仅包含if / else语句

时间:2011-12-08 15:33:15

标签: theory

鉴于只有if / else语句的程序,那么可以决定哪些变量发生但从未读过?

2 个答案:

答案 0 :(得分:2)

是。给定一个只有if / else语句的程序[假设没有向后分支和循环],程序中存在有限数量的路径。

您可以检查所有这些条件,检查必须满足哪些条件才能到达每条路径,并找到矛盾[不可访问的路径],并通过这种方式查找从未使用过的变量。

这可以作为Hoare logic的更简单版本实现,自动化非常简单,没有循环。 [使用循环当然不可能使其自动化]

答案 1 :(得分:0)

您可以在特定的if块中放置跟踪或调试语句,例如

if (assertion) 
{
    // print or echo or var_dump etc..
} 
else if(assertion) 
{
    // print or echo or var_dump etc..
} 
else if(assertion) 
{
    // print or echo or var_dump etc..
}

如果您可以通过这种方式跟踪代码,则可以断言任何变量或块中的代码将被执行/读取。