24小时热门版块排行榜    

查看: 452  |  回复: 2

oquick

银虫 (小有名气)


[交流] 有没有可能对C代码进行自动分析?找出其中影响程序可靠性的关键代码或者模块?

从逻辑上,而不是从语法上对程序进行自动分析,该用什么理论或者工具呢?比如对同样功能的两个程序,能够找出设计的弊端,或者可能对性能造成瓶颈的地方。 现在的技术有没有可能实现这一点?
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhphit

木虫 (初入文坛)



小木虫: 金币+0.5, 给个红包,谢谢回帖
没有自动可靠性分析的工具,最多也只能进行自动单元测试的工具。
有一些软件可靠性测试的工具,但据我所知,要么需要posix接口标准,要么是特定环境下的,但所谓的分析基本是一些统计数据,如api失效率之类的,如ptrace,STToolkit等,基本原理都是插入调试点,进行调用拦截,在统计分析失效次数。还没有见过逻辑层面分析的,逻辑层面分析估计和人工自能的复杂度一样,就相当于用一个程序自动写新程序。
有函数模块和调用的自动分析的工具,这个很多,如calltree,kprof等。
有性能测试的工具,如Intel VTune性能分析器,可以找出瓶颈,就是所谓的性能热点。
软件有很多的可靠性模型,但它们基本上是工程方法,涉及工程管理,bug修复对故障的影响,没有一个是可以在语言级别进行分析的。
语言开发是一种最佳实践问题,不存在最优的实现方法,同时不同的输入会产生不同的输出,因而也不可能有自动优化和分析的工具。要进行分析就得实测,统计需要分析的结果。
这是个人见解,希望有用。
2楼2013-03-30 20:03:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

oquick

银虫 (小有名气)


送鲜花一朵
我也认为这个东西应该是跟人工智能相关的。我想要的不是语法或者编写规范层面的分析,而是逻辑的分析,起码应该分析出函数之间的调用关系和运行顺序,最好能够自动画出流程图。但现在好像没有合适的工具来做这个。
3楼2013-04-02 14:30:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 oquick 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见