编译原理

编译原理就是什么?
    编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的通常原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工做,可是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提升软件人员的素质和能力。
学习编译原理有什么好处?
从现实的方面来讲,编译原理学过以后的益处(不考虑最后都没有入门的状况)包括:
    一、能够更加容易的理解在一个语言种哪些写法是等价的,哪些是有差别的
    二、能够更加客观的比较不一样语言的差别
    三、更不容易被某个特定语言的宣扬者忽悠
    四、学习新的语言效率也会更高
    五、其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余
不学有什么损失?
    不学编译原理,可能永远给各类写编译器的人当奴隶,觉得写程序只能按照他们设计的语言哲学来作。学好了编译原理,不必定非要本身写语言,可是至少能把不少其余程序员以为很酷的东西看得透彻一点,不会被程序语言的设计表象骗到太多。
如何学习编译原理?
    端正认识:编译原理在静态文本处理上有普遍的应用,举个简单的例子,把HTML文件转化为纯文本,利用编译原理来实现很是简单,理解了编译原理的实用性,大概能够提升学习兴趣。反复看书:这个办法看起来最笨,倒是基本的方法。结合源码来看:这是经典教材《Compiler Design in C》的做者Allen Hollub建议的方法。这本教材的特点就是包含了大段yacc,lex的代码。这也是个好方法,并且,只有看懂了代码,才能说在根本上理解了理论。固然,要彻底看懂yacc的代码工做量是很大的,并且一样要先理解理论。删繁就简,拈轻怕重:网上流传较广的一篇《编译原理学习导论》(做者四川大学唐良)就基本是这种思路,对于词法分析,做者避免了自动机理论和集合推演的介绍,直接搬出源码来,大大下降了理解难度,对于语法分析,做者介绍了递归降低和LL文法及相应的源码,而对LR文法,只说“理解理论就能够了“。虽然这种方法回避了对于难点的学习,可是用这种方法学习,能够在较短期内编写出一个可以运行的词法分析器和语法分析器,能够大大提升学习积极性。程序员

相关文章
相关标签/搜索