程序分析-原理和实践
- 三十不归 - 弯曲评论今年秋天在UCSB旁听一门Program Analysis的课(课程主页:http://www.cs.ucsb.edu/~benh/cs290/),觉得Ben的课程风格很实在,从头到尾没有口水话,几乎是干货. 回想之前对Program Analysis感兴趣却常常找不到合适的资料,而这个技术其实在很多方面都比较有用,因此想把这门课程记录下来的笔记陆续发出来,如果有朋友感觉有用,就没有白费一番介绍的力气了.
今年秋天在UCSB旁听一门Program Analysis的课(课程主页:http://www.cs.ucsb.edu/~benh/cs290/),觉得Ben的课程风格很实在,从头到尾没有口水话,几乎是干货。回想之前对Program Analysis感兴趣却常常找不到合适的资料,而这个技术其实在很多方面都比较有用,因此想把这门课程记录下来的笔记陆续发出来,如果有朋友感觉有用,就没有白费一番介绍的力气了。
整个材料计划分两个部分:第一部分是文字内容,从课程材料转述Program Analysis的原理、基本算法。没什么高深的内容(common sense),但不留心或许体会不到;第二部分是实践,基于Clang+LLVM这个production quality的框架把这些算法实现。希望不仅能提供一些材料,也有一些代码供参考之用。
文字部分提纲如下,基本按照课程思路来:
1 引言
2 控制流分析
3 数据流分析
4 Sparse 分析
5 指针分析
6 过程间分析
7 基于类型和约束的分析(type or constraint based analysis)
事先说明:这个系列仅仅是对UCSB CS290C这门课程的山寨,理解不到位甚至错误的地方,恳请指正。课程网站上的原始材料更有价值,对于悟性好动手能力的强的同学,网站上的材料或许已经足够,此文系列权当狗尾续貂。不管如何,希望能对一些人有用。
存在的疑问:
本次系第一次在弯曲这个平台投文,不清楚其中的规矩,更不知道这个系列是否适合放在这里,麻烦编辑告知。如果可以的话,我最近会把已经写好的部分内容放上来。