zoukankan      html  css  js  c++  java
  • 编译原理的认识与感悟

    编译原理就是什么?

          编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。

    学习编译原理有什么好处?

          从现实的方面来说,编译原理学过之后的益处(不考虑最后都没有入门的情况)包括:

              1、可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的

              2、可以更加客观的比较不同语言的差异

              3、更不容易被某个特定语言的宣扬者忽悠

              4、学习新的语言是效率也会更高

              5、其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余

    不学有什么损失?

           不学编译原理,可能永远给各种写编译器的人当奴隶,以为写程序只能按照他们设计的语言哲学来做。学好了编译原理,不一定非要自己写语言,但是至少能把很多其他程序员觉得很酷的东西看得透彻一点,不会被程序语言的设计表象骗到太多。

    如何学习编译原理?

          端正认识:编译原理在静态文本处理上有广泛的应用,举个简单的例子,把HTML文件转化为纯文本,利用编译原理来实现“非常“简单,理解了编译原理的实用性,大概可以提高学习兴趣。

          反复看书:这个办法看起来最笨,却是基本的方法。忘了是哪位名人说过,书比如龙书,虎书,鲸书,只要多看,总能看得懂的。

          删繁就简,避重就轻:网上流传较广的一篇《编译原理学习导论》(作者四川大学唐良)就基本是这种思路,对于词法分析,作者避免了自动机理论和集合论推演的介绍,直接搬出源码来,大大降低了理解难度,对于语法分析,作者介绍了递归下降和LL文法及相应的源码,而对LR文法,只说“理解理论就可以了“。虽然这种方法回避了对于难点的学习,但是用这种方法学习,可以在较短时间内编写出一个能够运行的词法分析器和语法分析器,可以大大提高学习积极性。

  • 相关阅读:
    golang删除数组某个元素
    golang用通道实现信号量,控制并发个数
    什么是ScaleIO中的forwards rebuild和backwards rebuild?
    SQL Server中的database checkpoint
    如何将thick provision lazy zeroed的VMDK文件转换为thick provision eager zeroed?
    LoadTestAgentResultsLateException in VS2010
    SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?
    VMware vCenter中, 如何辩认虚机上Raw Device Mapping过了的一块物理磁盘?
    SQL Server AlwaysOn Setup Step-By-Step Guide
    TPC-E在populate测试Database时需要注意的一些事项
  • 原文地址:https://www.cnblogs.com/171-LAN/p/5857283.html
Copyright © 2011-2022 走看看