首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有万能棉(-toolkit)吗?

有万能棉(-toolkit)吗?
EN

Stack Overflow用户
提问于 2010-10-04 16:38:40
回答 4查看 204关注 0票数 4

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

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

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

是否有任何像林特一样的工具足够灵活,可以很容易地适应新的编程语言?还是有人知道另一个好的起点?(Lex/Yacc??)

提前感谢

EN

回答 4

Stack Overflow用户

发布于 2010-10-04 17:31:40

我怀疑你会找到一个万能的工具。

很多静态分析都依赖于词汇和语法的遵从性。

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

例如,在C中,这个代码if ( x = 3 ) { /*Do something*/ }是完全合法的,尽管程序员可能打算使用==。或者,可以执行printf("%s", longVal);,尽管可以将任意值推送到堆栈上,但特定的调用可能基于传递给它的初始值而具有其他期望。

总之,一个通用的lint应用程序应该知道很多,更不用说语言和库是一个移动的目标,如果这样的野兽真的存在的话,那么对于实际应用来说,它要么太复杂,要么太缺乏动力,而不是一个更便宜的工具,它能更好地完成特定语言的工作。

票数 2
EN

Stack Overflow用户

发布于 2010-10-04 23:59:51

商业上可用的DMS软件重组工具包允许编写这样的一致性检查,并且具有足够的灵活性,可以适应多种语言。

票数 2
EN

Stack Overflow用户

发布于 2011-03-01 02:28:39

考虑一下Vera社区版或Google的cpplint提供了您可以定制的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3857282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档