如何更好的学习编译原理?

编译原理就是什么?
编译原理对于我们学计算机来说,是一门很重要的学科,它在计算机科学与技术的历史发展中发挥了巨大作用,是计算机系统的核
心支持软件。这门课程关注的是编译器方面的产生原理和技术问题,从本质上来讲就是一个算法问题。

学习编译原理有什么好处?
1. 词法分析方面,掌握正则表达式,了解dfa/nfa。
2. Parsing 方面,能读懂BNF,知道AST,会写简单的递归下降parser,会用
antlr之类的parser generator。
3. 优化方面,知道现代编译器的优化能力有多强,知道如何配合编译器写出高效易读的代码,避
免试图outsmart编译器。
4. 会实现简单的虚拟机(stack-based,不带GC),并把四则运算表达式翻译为虚拟机指令。

作者:陈硕
链接:http://www.zhihu.com/question/21755487/answer/30585811
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
5.去追寻程序设计语言的本质,如它在寄存器分配中将会使用到贪心算法,死代码消除中将会使用到图论算法,数据流分析中使用
到的Fixed-Point Algorithm,词法分析与语法分析中使用到有限状态机与递归下降这样的重要思想等等.

不学有什么损失?
1.如果不学编译原理,我们就不能更加的深入了解算法和计算机。

如何学习编译原理?
1.课前预习,课中认真听讲,课后复习。
2.遇到不懂的问题时候,先自己试着找办法解决,然后再向老师求助。
3.先是大概理解了一些编译理论皮毛,然后一知半解地写个编译器,之后大量涉猎了各种编程语言,再回来重读理论。
4.要多实践和多练习。

原文地址:https://www.cnblogs.com/linweicong/p/5857536.html