这里的《静态程序分析》跟别处的有什么不同?
1. 当前,中英文社区都缺乏这一领域的入门材料。
2. 本书将试图通过理论和实践的结合介绍这一领域。
在搜索引擎上搜索相关中文关键词,你会发现结果靠前的答案都是与南京大学相关课程在B站上公开视频的笔记,其中有不少写得很好,但并非面向一般学习者开发者的教程。这两者有重要的区别:
- 笔记:面向自己复习使用,只要自己回顾时能迅速pick up当时理解到的重点,就是一份好的笔记。
- 教程:面向他人学习使用,一份好教程能让学习者迅速把握领域中的重点,并且为学习者的进一步应用打下基础。
在搜索引擎上搜索英文关键词,你应该能搜索到国际上的大牛们的教材式的PDF文件和相关论文,或是开源的静态分析程序。但同样缺乏教程。大多数材料要么艰涩难懂要么太过粗浅。根据粗略的访问与调查,目前业界中主要还是大型的、国际化的、有前瞻视野的企业重视这一技术的发展应用,而中小企业则对其并不了解或认为静态程序分析技术仍不成熟。
本书计划同时涉及理论和实践,这主要是受到了《The Rust Programming Language》的启发。由于老师的实验课程部分尚在设计中,预计会在理论课程结束后自主设计一些简单的实践任务与指南。
能让大多数有一定编程经历,已经修过本科计算机相关基础课程的大四及以上同学:
- 在阅读本书时能较为轻松地理解理论
- 能够自主完成一个简单的程序实现
- (任何人都)能在阅读过程中接触计算机不同领域的小知识