在静态和动态程序分析中,“健全性”是一个经常使用的术语,具有回避的含义。部分困难在于术语的模糊性:通常,合理的动态分析只能警告真正的错误,而合理的静态分析则可以捕获所有错误,这是对前面定义的补充。然而,除了术语之外,还有一个更深层次的问题。对于受限制的语言模型来说,静态分析是正确的,但对于成熟的语言来说,这种分析通常是不正确的。实际上,没有一个实用的静态分析框架(是的,这实际上包括了任何你能说出名字的静态分析架构,如果它是要在真实的程序上运行的话)在实践中是可靠的。演讲的目的是解释为什么会出现这种情况,并讨论下一步可以做什么。
研究兴趣:应用编程语言和软件工程