【Book Donation Event】Isomorphism: Mathematics in Programming

written in front

In recent years, with the development of artificial intelligence, large-scale distributed computing, multi-core CPU and heterogeneous computing, various programming technologies in computers have changed in terms of programming language, software architecture, compiler, hardware architecture, integrated circuit design, etc. There are drastic changes. In terms of programming languages, more and more mainstream languages ​​introduce the concept of functional programming. In terms of software architecture, there are more parallel computing things and various distributed and concurrent models to make full use of multi-core CPUs. Compilers have developed in more fields of application, such as MLIR, TVM, etc., making full use of hardware acceleration units in heterogeneous computing. In terms of hardware architecture, with the rise of various hardware acceleration units, the original pattern of CPU as the computing center has been changed, and calculations rely more on various hardware acceleration units. In terms of integrated circuit design, in order to realize various hardware acceleration units, it is necessary to shorten the circuit design cycle to more quickly respond to various frequently changing needs. In recent years, many companies have used Bluespec, Chisel, SpinalHDL and other functional features. language to design integrated circuits.
As a programmer, how to deal with these changes? If we have to learn every time a new technology appears, it will make us exhausted and feel like we can't learn - there are too many things to learn. But in fact the basis of these new technologies has not changed much, and some are even recombined on the original basis. Therefore, we should learn more basic technologies, improve abstract thinking ability, and be good at discovering the essence of different technologies and the similar relationship between different technologies (better isomorphic relationship). In this way, we can adapt to all changes without change, master various technologies, and master new technologies at a relatively small cost.

insert image description here

Isomorphism: Mathematics in Programming
Author: Liu Xinyu Introduces the mathematical foundation and principles of computer programs
from seven aspects: number, recursion, symmetry, category, fusion, infinity, and paradox

In this book, the author expounds some basic mathematical concepts and abstraction related to programming in great detail and clearly, and shows these concepts in actual programming, using functional programming language to show good abstraction in actual programming how it is done. By reading this book, readers will gain a new way of thinking about programming, good abstraction ability, and have a clearer understanding of mathematical concepts in programming (especially some of the functional programming that has received more and more attention in recent years) Fundamental concepts such as lambda calculus, recursion, algebraic data types, functors, natural transformations, etc.). This book will be very helpful for subsequent learning of functional programming languages ​​or understanding of functional features in mainstream languages.

brief introduction

This book introduces the mathematical basis and principles of computer programs from seven aspects: number, recursion, symmetry, category, fusion, infinity, and paradox, and uses the concept of "isomorphism" as a clue to reveal that programming is essentially isomorphic with mathematics . Chapter 1 introduces the Peano arithmetic axiom system. Through 5 axioms, it builds the cornerstone of the computer program building; through examples such as one-way linked list and Fibonacci sequence, it shows the calculation structure that is isomorphic to natural numbers. Chapter 2 introduces recursion, starting with Euclid's algorithm, and finally building the mathematical principles of recursion on top of Lambda calculus and Y combinators. Chapter 3 introduces abstract algebraic structures such as symmetry groups, rings, and fields, and explains Galois theory, the pearl of abstract thinking. Chapter 4 introduces category theory, and builds many programming concepts such as lists, exceptions, polymorphism, type systems, and composite data structures on the basis of category theory. Chapter 5 introduces fusion laws, which are powerful tools for algorithm derivation and optimization. Chapter 6 introduces infinity, gives Cantor's infinite set theory and the concept of transfinite numbers, and introduces the concept of flow in programming and the relationship of infinity. Chapter 7 concludes the book with Russell's paradox, computability, and Gödel's incompleteness theorem, introducing the boundaries of computing power and implications for the fundamental philosophy of programming.
The book also introduces the life experiences and anecdotes of relevant mathematicians in each chapter, explains how they overcome difficulties, pursue truth, and create miracles, and intersperses interesting connections among programming, mathematics, art, and music.

About the Author

Liu Xinyu
, R&D Manager of Amazon China R&D Center, is responsible for the development of distributed warehousing and logistics systems. In 1999 and 2002, he received his bachelor's degree and master's degree from the Department of Automation, Tsinghua University, respectively. Focusing on functional basic algorithms for a long time, he is the author of "New Solutions to Algorithms" (published in 2017).

Experts recommend

Bacon said: "Mathematics is the gymnastics of thinking." Programming is a highly complex thinking activity. The benefits of learning mathematical ideas for programming are self-evident. The author of this book has read a large number of mathematical classics, selected exquisite mathematical ideas such as recursion and symmetry from the perspective of isomorphism, and conceived it as a book to present to everyone, which is very rare! This is a book that condenses thoughts, concise and to the point, it is worth savoring carefully.
Zhao Junmin, Software Architect of Beijing Glory Terminal Co., Ltd.
This book not only fully and thoroughly explains the profound isomorphism theory in algebraic systems, but also clearly explains the historical context of mathematical development, especially the application of mathematical theory to real life. In all aspects, I have benefited a lot as a mathematics lover. It is really gratifying that this book has been published now, so that more mathematics lovers can have the opportunity to read it.
Li Qu, a teacher of the School of Computer Science, Zhejiang University of Technology,
explains the knowledge of mathematical logic, abstract algebra, and functional programming in easy-to-understand words. This is the best introductory book on category theory that I have ever read. Every computer All undergraduate students in related majors should read this book.
chirsz GitHub readers
When I read this book for the first time, I felt like I was reading a college textbook, but college textbooks rarely have so many vivid stories to set off and connect. After reading this book carefully, I found that many tasks in real development can be done more interesting and fancy, even if you want to play some tricks, you will not be seen through at a glance. It doesn’t matter if you think this book is too complicated, you might as well read it first, as long as you have a general understanding of what is said in the book, it is enough, and then keep it on your desk, and when you need it, you can use it to find out what to do. You can definitely surpass most of your peers in mathematics.
Yu Sheng, author of "Regular Guidelines"

write at the end

Participation method: Follow bloggers, like, bookmark and comment on this blog.
Lucky draw method:
Method 1: Donate books, comments and bloggers with the most likes! ! !
Method 2: Add the contact information of the blogger at the end of the article: ZICOLBB, enter the blogger exchange group and
send books from
time to time in the group Deadline: July 15, 2023

Guess you like

Origin blog.csdn.net/qq_54796785/article/details/131532625