程序的静态分析?
什么是程序的静态分析?有什么用处吗?
今天看了es6的模块,说到模块是静态加载的,这样就可以静态分析js的代码了。静态分析的意义在哪里?有什么比较突出的优点吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
什么是程序的静态分析?有什么用处吗?
今天看了es6的模块,说到模块是静态加载的,这样就可以静态分析js的代码了。静态分析的意义在哪里?有什么比较突出的优点吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
简单白话地讲,就是
首先对源码进行分析(类似编译器前端做的工作:词法,语法分析等),得到AST后,
进一步分析(数据流,控制流分析,类型系统等),
获取到一些有用的信息(类似智能提示的那种,比如类型变换情况,转换是否安全,空指针检测,是否有潜在的bug等),
帮助我们写出安全的代码.
实际应用的话,我了解到的有在航空软件中,有研究所用model checking的方法找出潜在的bug,让飞机运作更安全,规避一部分风险.当然普通的软件中也会有使用.
可以参考一下这个问题下面的回答:
如何学好程序的静态分析