为什么是这本书?

这里的《静态程序分析》跟别处的有什么不同?

为什么应该读这本书?

1. 当前,中英文社区都缺乏这一领域的入门材料。

2. 本书将试图通过理论和实践的结合介绍这一领域。

中文社区

在搜索引擎上搜索相关中文关键词,你会发现结果靠前的答案都是与南京大学相关课程在B站上公开视频的笔记,其中有不少写得很好,但并非面向一般学习者开发者的教程。这两者有重要的区别:

  • 笔记:面向自己复习使用,只要自己回顾时能迅速pick up当时理解到的重点,就是一份好的笔记。

  • 教程:面向他人学习使用,一份好教程能让学习者迅速把握领域中的重点,并且为学习者的进一步应用打下基础。

英文社区

在搜索引擎上搜索英文关键词,你应该能搜索到国际上的大牛们的教材式的PDF文件和相关论文,或是开源的静态分析程序。但同样缺乏教程。大多数材料要么艰涩难懂要么太过粗浅。根据粗略的访问与调查,目前业界中主要还是大型的、国际化的、有前瞻视野的企业重视这一技术的发展应用,而中小企业则对其并不了解或认为静态程序分析技术仍不成熟。

理论与实践的结合

本书计划同时涉及理论和实践,这主要是受到了《The Rust Programming Language》的启发。由于老师的实验课程部分尚在设计中,预计会在理论课程结束后自主设计一些简单的实践任务与指南。

本书写作的目标

能让大多数有一定编程经历,已经修过本科计算机相关基础课程的大四及以上同学:

  1. 在阅读本书时能较为轻松地理解理论

  2. 能够自主完成一个简单的程序实现

  3. (任何人都)能在阅读过程中接触计算机不同领域的小知识

为什么要写这本书?

  • 有趣且有用

    • 有趣。首先非常感谢李老师谭老师的精心准备和深入浅出的精彩课程 :)

    • 有用。这门课的理论内容已经被工业界实践用于回答一个现代软件领域的重要问题:

      ​ ❓ 如何自动化地高效保证软件质量

  • 少有人涉足

    • 其他领域已经有很多优秀前辈完成了重要的工作

    • 这一领域暂时还不为大多数人所知

    • 完善这方面的公开资料能够帮助到很多人

  • 知识没有界限

    • 无论是自学日语,还是各大世界名校的公开课,我都受益颇多。世界已经如此不平等,知识不应该有界限

  • 回馈开源社区

    • 我从开源社区中获益颇多,找到了合适的机会也希望能为开源社区(尤其是中文社区)作出自己的贡献

最后更新于