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

    编译原理就是什么?

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

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

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

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

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

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

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

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

    不学有什么损失?

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

    如何学习编译原理?

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

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

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

  • 相关阅读:
    Windows API
    c# 各类型数据库连接字符串格式
    [C#/C++]C#调用非托管DLL的APIs
    (F#) How to enable F# template working under Visual Studio 2010 Shell.
    ubuntu文件、目录操作基本命令
    javascript curry
    C#中组件与控件的主要区别是什么?
    下拉菜单
    js 尺寸和位置 笔记
    $.each
  • 原文地址:https://www.cnblogs.com/171-LAN/p/5857283.html
Copyright © 2011-2022 走看看