编译原理初学者的故事
编译原理就是什么?
编译原理是计算机专业的一门重要专业课,介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。这门课在理论、技术、方法上都对我提供了系统而有效的训练,有利于提高软件人员的素质和能力。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。
学习编译原理有什么好处?
编译原理可以说是一个计算机科学的缩影,学习它更多的是去追寻程序设计语言的本质.学到了一种解决问题的方法,而且是强有力的方法。也许我一辈子都无缘写一个C语言的编译器,但如果一直做程序,一直在寻求高效而通用的解决问题之道,总有一天就我自己设计小尺度的语言。语法分析,语义分析,和代码优化的知识能让自己终生受益,可以学习大量优美的算法,并得以欣赏理论和实践在编译器开发中如何美妙地结合在一起,了解怎样规划,设计,和实现一个大型的系统。搞清语句的逻辑关系,每个程序都代表一种思想,所以我们应该认真学习好编译原理。
不学有什么损失?
如果不认真学习编译原理,我们可以说就把以前学习的C语言以及数据结构的精力都浪费了,不仅无法成为一个优秀的程序员,更无法将自己所学习的知识运用到算法与程序中,在以后信息技术时代会被淘汰,与他人竞争时失去自身优势,在这激烈竞争的时代无法在此行业立足,所以我们应该好好学习编译原理。
如何学习编译原理?
我认为学习编译原理,首先要懂得词法分析,接着就是语法分析,例如语法树、二义性、句柄。在分析过程要建立状态转移手写。先是理解了一些编译理论皮毛,然后写个编译器,之后大量涉猎了各种编程语言,再回来重读理论。这样就能建立起一个比较完备的知识图谱。简而言之就是:1、学习C语言的指针 2、学习数据结构及数学原理 3、深入理解汇编语言 4、最后就是学习编译原理,看三大书 《龙》、《虎》、《鲸书》