zoukankan      html  css  js  c++  java
  • 编译原理

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

  • 相关阅读:
    CSU 1333 Funny Car Racing
    FZU 2195 检查站点
    FZU 2193 So Hard
    ZOJ 1655 FZU 1125 Transport Goods
    zoj 2750 Idiomatic Phrases Game
    hdu 1874 畅通工程续
    hdu 2489 Minimal Ratio Tree
    hdu 3398 String
    洛谷 P2158 [SDOI2008]仪仗队 解题报告
    POJ 1958 Strange Towers of Hanoi 解题报告
  • 原文地址:https://www.cnblogs.com/170he/p/5856981.html
Copyright © 2011-2022 走看看