计算机只认识二进制的,但是我们平常开发中根本不会使用二进制进行开发,我们使用的都是 Java、C、Python 这类的高级语言。每种语言都会经过一系列的转换才能被计算机识别,那么到底是谁做的这项工作呢?一个被称为编译器(compiler) 的大佬出场了。
在今天,各种高级语言、框架的出现,让大家可以迅速了解一门技术,上手编写程序。但程序员想要保持长期的竞争力,学习底层知识,提升专业素养必不可少。也许你以后不会成为编译器开发者,但学好编译原理,一定会让你受益终身。
编译原理作为一门难度较高,同时又实践性很强的课程,在入门的过程中可能会遇到很多挑战。尤其是如果从 “龙书” 学起,可能会很有挫败感,即使花费了较多的精力也如同管中窥豹。
(600多页的“龙书”)
实际上编译原理是一门非常有趣的课程,如果能够完整地实现一个简单的编译器,对编译原理的知识有了整体的把握,再来进一步地根据自己的兴趣深入学习,不但可以更高效地学习,而且会非常有成就感。
另外,学习编译技术对于提升程序员职场竞争力也很重要。很多大公司在招聘时,有难度的题目都会涉及到底层机制。学习编译原理,可以让你从前端的语法、代码优化、与硬件结合等维度,加深对计算