首页 > 程序的静态分析?

程序的静态分析?

什么是程序的静态分析?有什么用处吗?
今天看了es6的模块,说到模块是静态加载的,这样就可以静态分析js的代码了。静态分析的意义在哪里?有什么比较突出的优点吗?


简单白话地讲,就是
首先对源码进行分析(类似编译器前端做的工作:词法,语法分析等),得到AST后,
进一步分析(数据流,控制流分析,类型系统等),
获取到一些有用的信息(类似智能提示的那种,比如类型变换情况,转换是否安全,空指针检测,是否有潜在的bug等),
帮助我们写出安全的代码.

实际应用的话,我了解到的有在航空软件中,有研究所用model checking的方法找出潜在的bug,让飞机运作更安全,规避一部分风险.当然普通的软件中也会有使用.

可以参考一下这个问题下面的回答:
如何学好程序的静态分析

【热门文章】
【热门文章】