当前位置:网站首页>Dragon Book tiger Book whale Book gnawing? Try the monkey book with Douban score of 9.5
Dragon Book tiger Book whale Book gnawing? Try the monkey book with Douban score of 9.5
2022-06-25 11:06:00 【turingbooks】
According to legend , There are three holy books in the field of compilation principles :
Long Shu Is for Compilers: Principles, Techniques, and Tools;
Tiger book Is for Modern Compiler Implementation in C;
Whale book Is for Advanced Compiler Design and Implementation.
The big three are well-known , But it is not easy to understand the secret .
King Turing often receives inquiries from readers : Is there any Some lightweight compilation principles tutorial , It's very practical That kind of ?
Now we can finally give the answer ! Before introducing this set of books , Let's take a look at this comment given by the reader :

“ If I'm stuck on an island , Must build a programming language , So this is the only book I want to take with me .”

The English version of this set of books is highly recognizable , And get... On bean curd 9.5 and 9.4 The high score .

author Thorsten Ball Tell King Turing , all the time , Many compiler enthusiasts from China asked him when the Chinese version would be released . Now? , He can finally share the good news !
Author's brief introduction
Sosten · Bauer (Thorsten Ball),Sourcegraph Software engineer , Proficient in multiple programming languages , Include Go、C、JavaScript and Ruby, Be familiar with the principles of compilation 、 System programming 、Unix、 Database and other related technologies . Currently living in Germany , He has been active in major European technical conferences for a long time .
How to read this set of books
Colorful monkey book —— use Go Language self-made interpreter
Starting from scratch , No third-party packages , From nothing to handwriting C Language ——Monkey Language .
You are going to Monkey Implement lexical analyzer 、 parsers 、 Abstract syntax trees and macro systems .
You wrote it. Monkey Language You can bind values and names :
let age = 1;
let name = "Monkey";
let result = 10 * (20 / 2);
You can also bind an array to a name :
let myArray = [1, 2, 3, 4, 5];
You can also bind functions and names :
let add = fn(a, b) { return a + b; };
Support calling functions :
add(1, 2);
Of course , In the process of reading , You will also teach Monkey More skills !
Golden Monkey book —— use Go Language self-made compiler
help Monkey evolution , Implement bytecode compiler and virtual machine , Improve its performance to that of the interpreter 3 times .
You must read the colorful monkey book first , Read the golden monkey book again ?
There is an advanced relationship between the two books . Although you can read any book you like , but The best reading order is still to read the colorful monkey book first , Read the golden monkey book again .
Who does this set of books suit

Why Go Language ?
Go Language is easy to read and understand . Even for beginners , The code in this set of books is also easy to understand .
Besides ,Go Language provides Excellent standard libraries and tools . Just use these tools , No third-party libraries , You can write interpreters and compilers .
Colored eggs : More than Go Language !
Since the English version was published , Many readers around the world have achieved more in other languages based on the contents of the book Monkey:Python、Java、Elixir、Rust、C、C++、TypeScript、C#、Dart、Haskell、V、PHP、Kotlin、Scala、Lua、Julia……
Come and join the challenge ! Penetrate the underlying logic of the programming language , Use your favorite language to achieve Monkey.
Good reviews in the industry
Compiler theory is the most useful college course I have ever taken . Learning for “ Toy language ” Write lexical analyzer and runtime , Help to uncover the mystery of computer science . I recommend that all unfamiliar with lexical analyzers 、 Software development engineers of parsers and evaluators read this set of books .
—— Mitchell · Bridge version Talented programmer
Compilers and language development are high threshold areas . As a practitioner , We often encounter the problem of training new people but not getting started quickly . This set of books solves this problem well , While lowering the threshold , Without losing richness , It comprehensively shows the elements of developing compilers and programming languages , So I recommend this set of books to all interested readers .
—— Shi bin (benshi001) Go Language ranks top in the world 50 Contributors
A few years ago SICP When , I learned how to write an interpreter . The process of learning compiling principles in books is very boring . This set of books allows us to study theory at the same time , Practice at the same time . We can see , How to get rid of the boring process of learning theory by personally implementing the interpreter and compiler .
—— Zuoshuqi (@Draven) Cloud native Engineer 、Kubernetes Members of the project 、《Go Language design and implementation 》 author
If you are familiar with explanatory language , At the same time Go Language lover , So this set of books is written for you . Use Go Language implements an interpreter from zero / compiler , Not only do you understand how they work , And you're right Go Language will also have a deeper understanding . If you can follow the contents of the book to implement an interpreter / compiler , Then your technology will have a great leap .
—— Xu Xinhua Go Language Chinese webmaster 、 official account “polarisxu” The manager
One of the three great romances of programmers is homemade programming languages . Thanks to the Go The simplicity of its own grammar and the balance in Engineering , This set of books is written in concise and direct code , Step by step, it is revealed to the readers that it is not unattainable to make a programming language . For the readers who want to make their own programming language and don't want to bite the compiling principle , I recommend this set of books .
—— Mengzhuo (mengzhuo) Go Members of the project
This is a good set of books , I was studying Go I had the honor of reading . Now? , It has finally been translated into Chinese . Self made interpreters and compilers , It's cool to hear it . The success of this set of books lies in , It is not from a commanding height , It takes us to complete the construction of the interpreter and compiler from scratch , It's very practical .
—— Start a ship 2017 year CSDN Blog star 、 Former Alibaba R & D Engineer 、“ Start a ship ” The manager
In software design , Developers often need to develop some highly abstract custom modules . These modules are likely to involve domain specific languages (DSL) Design and analysis of . If you are familiar with the various modules and operating principles of the compiler , You can easily design a suitable for your project DSL. There are many books about compilers on the market , These works are often large and comprehensive , But it's not easy to understand . The authors of this set of books have designed the contents very exquisitely , By getting from 0 To 1 Create a programming language to lead the reader through the core principles of interpreters and compilers . I Believe , It can give DSL Designers bring help .
—— Lizhengxing Tencent senior engineer
** One click order

边栏推荐
猜你喜欢

Sign up to open the third session of the "flying oar hacker marathon". It's been a long time

CSRF攻击

Coscon'22 lecturer solicitation order

COSCon'22 讲师征集令
![[file containing vulnerability-03] six ways to exploit file containing vulnerabilities](/img/4f/495c852eb0e634c58e576d911a2c14.png)
[file containing vulnerability-03] six ways to exploit file containing vulnerabilities

Nuxtjs actual combat case

Network protocol learning -- lldp protocol learning

Technical practice and development trend of video conference all in one machine

FPGA基于VGA显示字符及图片

Complete steps for a complete Oracle uninstall
随机推荐
网易开源的分布式存储系统 Curve 正式成为 CNCF 沙箱项目
Is it safe to open a securities account in changtou school by mobile phone?
Continuous delivery jenkinsfile syntax
开源社邀请您参加OpenSSF开源安全线上研讨会
今天16:00 | 中科院计算所研究员孙晓明老师带大家走进量子的世界
GaussDB others内存比较高的场景
Socket communication principle
Task03 probability theory
ZABBIX distributed system monitoring
Advanced single chip microcomputer -- development of PCB (2)
[image fusion] image fusion based on morphological analysis and sparse representation with matlab code
Android:kotlin中Gson与JSON的泛型映射解析
16 enterprise architecture strategies
有关计网的五种类型题
手机炒股安全吗?
Checking whether the double value is an integer - Swift - checking if a double value is an integer - swift
Use of Siemens plcs7-200 (I) -- Introduction to development environment and configuration software
Detailed explanation of Android interview notes handler
Apache ShenYu 入门
XSS攻击