1. 编译器如何危及应用程序的安全
对于编译器如何将人类可读的代码翻译成机器运行的机器码,大多数程序员通常只有大概的概念。在编译过程中,编译器会对代码进行优化,使其能高效的运行。有的时候,编译器在优化上面走的太远了,它甚至移除了本不应该移除的代码,导致应用程序更加脆弱。
MIT人工智能和计算机科学实验室的四位研究人员调查了(pdf) 不稳定优化(optimization-unstable)代码的问题——编译器移除的包含未定义行为的代码。所谓的未定义行为包括了除以0,空指针间接 引用和缓冲溢出等。在某些情况下,编译器完整移除未定义行为代码可能会导致程序出现安全弱点。
研究人员开发了一个静态检查器STACK去识别不稳定的 C/C++代码,他们在足球平台出租测试的系统中发现上百个新bug:Linux内核发现32个bug,Mozilla发现3个,Postgres 9个和Python 5个。STACK扫描了Debian Wheezy软件包仓库8575个含有C/C++代码的软件包,发现其中3471个至少包含一个不稳定的代码。研究人员认为这是一个非常普遍的问题。
2. 《程序员修炼之道:通向务实的最高境界》pdf下载在线阅读全文,求百度网盘云资源
《程序员修炼之道:通向务实的最高境界(第2版)豆瓣阅读》网络网盘pdf最新全集下载:
链接:https://pan..com/s/14sVP1CH2fqwyrsjt8aQ8_Q
3. 《程序员的数学》pdf下载在线阅读,求百度网盘云资源
《程序员的数学(第2版)》([日]结城浩)电子书网盘下载免费在线阅读
链接:
书名:程序员的数学(第2版)
作者:[日]结城浩
译者:管杰
豆瓣评分:8.7
出版社:人民邮电出版社
出版年份:2020-4-1
页数:262
内容简介:
《程序员的数学 第2版》面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无须精通编程,也无须精通数学,只要具备四则运算和乘方等基础知识,即可阅读本书。
《程序员的数学 第2版》讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、高斯求和、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。
《程序员的数学 第2版》新增一个附录来介绍机器学习的基础知识,内容涉及感知器、损失函数、梯度下降法和神经网络,旨在带领读者走进机器学习的世界。
作者简介:
结城浩(作者)
生于1963年,日本知名技术作家和程序员。在编程语言、设计模式、数学、加密技术等领域,编写了很多深受欢迎的入门书。代表作有《数学女孩》系列、《程序员的数学》《图解密码技术》等。
管杰(译者)
毕业于复旦大学日语系,现为对日软件工程师,具有多年日语技术文档编写经验。爱好日汉翻译和日本文化史,译有《明解C语言:入门篇》等。
卢晓南(译者)
本科就读于西安交通大学少年班、数学系。名古屋大学博士(信息科学)。现于山梨大学计算机系任助理教授。主要研究方向包括组合数学(离散数学)及其在信息科学、计算机科学、统计学中的应用。译着有《程序员的数学3:线性代数》。