gpt4 book ai didi

static-analysis - 是否有通用的 lint (-toolkit)?

转载 作者:行者123 更新时间:2023-12-04 07:20:19 27 4
gpt4 key购买 nike

我想对一堆用一种不太常见的编程语言(类似 C 的语法)编写的脚本进行静态代码分析。经常出现的问题是:

  • 未定义/声明符号的使用
  • 调用函数时的参数数量或类型错误

  • 语言解释器/编译器本身并不为这些问题提供帮助。

    是否有任何类似 lint 的工具足够灵活以使其轻松适应新的编程语言?或者有人知道另一个好的起点吗? (莱克斯/雅克???)

    提前致谢

    最佳答案

    我怀疑你会找到一个通用的工具。

    许多静态分析不仅仅依赖于词汇和语法的合规性。

    一个好的静态分析器将拥有语言及其实现的额外上下文知识。它还可能包括一个跟踪状态和多个执行路径的模拟器。此外,它可能了解模式和实践,以及某些库和调用。

    例如,在 C 中,此代码 if ( x = 3 ) { /*Do something*/ }完全合法,尽管程序员可能有意 == .或者,可以这样做 printf("%s", longVal); ,虽然可以将任意值插入堆栈,但该特定调用可能具有基于传递给它的初始值的其他期望。

    最重要的是,通用 lint 应用程序需要了解的东西太多了,更不用说语言和库是一个不断变化的目标,如果确实存在这样的野兽,它要么太复杂,要么太不实用应用程序而不是一个更便宜的工具,它可以更好地完成特定于语言的工作。

    关于static-analysis - 是否有通用的 lint (-toolkit)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3857282/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com