2015-01-13 45 views
3

我已經開始使用靜態分析。在閱讀了幾篇論文之後,有一件事情我還不清楚。什麼是正確的聲音和不完善的靜態分析的定義?靜態分析:聲音與不穩定

問題是我在不同的地方發現了矛盾的定義: 「...聲音分析模擬程序的所有行爲。」 http://blog.errstr.com/2013/01/17/on-static-analysis/

「不完整的工具/正式工具:這些工具報告檢查的所有缺陷&不會產生錯誤否定結果。」 http://techvolve.blogspot.de/2014/03/static-analysis-overview.html

回答

4

http://techvolve.blogspot.de/2014/03/static-analysis-overview.html中的定義相反。它應該是:

  • 不健全的工具:這些查找錯誤誤報減少到一個合理的水平的工具犧牲最大化。因此,這些工具故意不精確&不可判定 - 這意味着可能的誤報&錯誤的否定。
  • 聲音工具/正式工具:這些工具報告檢查的所有缺陷&不會產生錯誤否定結果。這些相對較慢。但是會產生大量的誤報。

即使您忽略混淆,該頁面也不是特別精彩。 「不可判定」一詞在第一段中仍然以非傳統意義使用。 (A 問題要麼是可判定的,要麼是不可判定的,一個工具既不是也不是其他的)

您最好從書目檢索中省略這篇文章。

+0

這篇文章不是唯一的定義錯誤。一些在會議上發表的論文(他們少數人認爲那些聲稱「......分析模擬了一個程序的所有行爲的聲音分析模型」),我讀過的內容包含了相同的定義。我首先忽略了他們,但是一旦我達到這篇文章,懷疑就會上升。謝謝你的澄清。 – xTrmwYs

+1

@xTrmwYs您可能在文章中遇到過的另一個問題與正在檢測的內容有所不同。在靜態分析中,我們檢測到錯誤,這些錯誤給出了「誤報」,「漏報」和「聲音」的含義。顯然,在計算機科學的其他子領域,他們檢測正確的程序,所以「聲音」和「完整」的含義被顛倒過來。 –