编译原理是否有用?我认为这门课是一门真正与代码做斗争的课程,对于一个有至于追求技术的人是不容错过的课程,而且编译原理可以说是一个计算机科学的缩影。你学习它更多的是去追寻程序设计语言的本质,如它在寄存器分配中将会使用到贪心算法,死代码消除中将会使用到图论算法,数据流分析中使用到的Fixed-Point Algorithm,词法分析与语法分析中使用到有限状态机与递归下降这样的重要思想等等,也许你以后不会成为一个编译器开发工作者,但是编译原理的学习中所获,所思的东西足以让你终生获益。同时,学完这门课程,对于一个有Geek精神的开发者,他会开始运用自己的所学开发享受“上帝”的感觉,去尝试创造一门语言,我想这种感觉不是每门课程都能带给你的。我相信,当你真正完成这个过程后,你对你所写的程序、程序语言都会有更深的本质认识,这样的认识也会让你站的高度完全不同。
展开