【赠书活动】同构:编程中的数学

写在前面

近年来随着人工智能、大规模分布式计算、多核CPU和异构计算等的发展,计算机中的各种编程技术在编程语言、软件架构、编译器、硬件体系结构、集成电路设计等方面都有着剧烈的变化。编程语言方面,越来越多的主流语言引入函数式编程的概念。软件架构方面则有了更多并行计算的东西、各种分布式并发的模型,以充分利用多核CPU。编译器方面则有了更多领域应用方面的发展,比如MLIR、TVM等,充分利用异构计算中的硬件加速单元。硬件体系结构方面则随着各种硬件加速单元的兴起,改变了原来以CPU为计算中心的格局,计算更多地依赖各种硬件加速单元。集成电路设计方面则为了实现各种硬件加速单元,需要缩短电路设计的周期,以更快速地应对各种频繁变化的需求,近年来有不少公司使用Bluespec、Chisel、SpinalHDL等具有函数式特性的语言来设计集成电路。
作为程序员,如何应对这些变化呢?如果每出现一种新的技术都去学习,那将会让我们疲于奔命,会有学不动的感觉——需要学习的东西太多了。但实际上这些新技术的基础变化并不大,有些甚至是在原有基础上的重新组合。所以,我们应该更多地学习基础的技术,提升抽象思维能力,善于发现各种不同技术的本质、不同技术之间的相似关系(更好的是同构关系)。这样我们就能够以不变应万变,对各种技术融会贯通,以较小的代价掌握新的技术。

【赠书活动】同构:编程中的数学_第1张图片

同构:编程中的数学
作者:刘新宇
从数字、递归、对称、范畴、融合、无穷、悖论
七个方面介绍了计算机程序的数学基础和原理

作者在这本书中非常详细、清晰地阐述了与编程相关的一些基本数学概念和抽象方式,并将这些概念在实际的编程中展示出来,使用函数式编程语言在实际编程中展示良好的抽象是如何做的。读者通过阅读本书,将会得到一个全新的编程思维方式、良好的抽象能力,对编程中的数学概念有更清晰的理解(特别是对近年来关注度越来越高的函数式编程的一些基础概念,比如lambda演算、递归、代数数据类型、函子、自然变换等)。本书对后续学习函数式编程语言或者理解主流语言中的函数式特性会非常有帮助。

内容简介

本书从数字、递归、对称、范畴、融合、无穷、悖论七个方面介绍了计算机程序的数学基础和原理,并以“同构”概念为线索揭示出编程本质上是和数学同构的。第1章介绍皮亚诺算术公理系统,通过5条公理,构筑了计算机程序大厦的基石;通过单向链表、斐波那契数列等例子,展示了和自然数同构的计算结构。第2章介绍递归,通过欧几里得算法作为开端,最终把递归的数学原理构建在Lambda演算和Y组合子之上。第3章介绍对称群、环、域等抽象代数结构,解释了伽罗瓦理论这一抽象思维的明珠。第4章介绍范畴论,把列表、异常、多态、类型系统、复合数据结构等众多编程概念构筑在范畴论的基础上。第5章介绍融合律,它是进行算法推导和优化的有力工具。第6章介绍无穷,给出了康托尔的无穷集合论和超限数概念,介绍了编程中流的概念和无穷的关系。第7章以罗素悖论、可计算性和哥德尔不完全性定理结束本书,介绍了计算能力的边界和对编程基础哲学的影响。
本书还在各个章节中介绍相关数学家的人生经历和逸闻趣事,讲解他们如何克服困难、追求真理、创造奇迹,并穿插讲述编程、数学、艺术、音乐之间的有趣联系。

作者简介

刘新宇
亚马逊中国研发中心研发经理,负责分布式仓储物流系统的开发。1999年和2002年在清华大学自动化系分别获得学士和硕士学位。长期专注于函数式基础算法,著有《算法新解》一书(2017年出版)。

专家推荐

培根言:“数学是思维的体操。”而编程是一项高度复杂的思维活动。学习数学思想对编程的益处不言而喻。本书作者阅读了大量的数学典籍,以同构视角从中挑选了诸如递归、对称等精妙的数学思想,构思成书呈现给大家,非常难得!这是一本浓缩思想的书,言简意赅,值得我们细细品味。
赵俊民 北京荣耀终端有限公司软件架构师
本书不仅把代数系统中深奥的同构理论讲解得完整透彻,还把数学发展的历史脉络交代得清清楚楚,特别是把数学理论应用到实际生活的方方面面,让我作为一个数学爱好者受益匪浅。此书如今得以出版,能让更多数学爱好者有机会看到,着实令人开心。
李曲 浙江工业大学计算机学院教师
本书以浅显易懂的文字将数理逻辑、抽象代数和函数式编程的知识娓娓道来,这是我读过的最好的范畴论入门书籍,每个计算机相关专业的本科生都应该读一读这本书。
chirsz GitHub读者
初读这本书,感觉是在看大学教材,不过大学教材很少有这么多生动的故事来烘托和关联。细读这本书,才发觉现实开发中的许多任务原来可以做得更有趣也更花哨,就算要玩点把戏也不会被人一眼看穿。觉得本书太复杂也不要紧,不妨先浏览一遍,只要大致了解书中讲了什么就足够,然后常备在案头,需要的时候按图索骥,在数学方面绝对能超越大部分同行了。
余晟 《正则指引》作者

写在最后

参与方式:关注博主,点赞、收藏本博客并进行评论
抽奖方式:
方式一:赠书评论点赞最多的博主!!!
方式二:文末添加博主联系方式:ZICOLBB,进博主交流群
群内不定期送书
截止时间:2023年7月15日

你可能感兴趣的:(编程中的数学)