• 对编译原理的看法


       编译原理计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。
       这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的 必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。 我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪 50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟 编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决著名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间 诞生不少名着的相关数论。
      当你真正完成编译原理的学习后,你对你所写的程序、程序语言都会有更深的本质认识,这样的认识也会让你站的高度完全不同,并且知道编译的过程方法理论,可以为以后学习工作打下基础,而且编译原理并不仅仅是用来写编译器的,还可以在许多意想不到的领域进行应用。如果以后走工程方向的,学好编译原理可以基本囊括所有需要的技术,锻炼脑力,同时可以有广泛应用,更本质上说,让你理解你天天用的语言,这是优秀程序员需要具备的专研精神。
      不学编译原理,可能永远给各种写编译器的人当奴隶,以为写程序只能按照他们设计的语言哲学来做。学好了编译原理,不一定非要自己写语言,但是至少能把很多其他程序员觉得很酷的东西看得透彻一点,不会被程序语言的设计表象骗到太多。
      下面我就发表自己对于学习编译原理的方法
    1.先利用ANTLR之类的编译器生成工具,做一个小程序,所需知识只是正则表达式的基本知识和生成工具本身的使用方法. 这样做的好处是:  
     1)可以体会到编译原理的实用性,提高学习兴趣 
     2)入门容易,消除编译原理学习的畏难情绪. 
     3)获得词法分析器和语法分析器的感性认识,有利于加深对理论的理解.  
     4)获得编译器自动生成工具(compiler compiler)的使用经验,提高解决实际问题的能力.  
    2.象ANTLR之类的工具是开源(open source)的,可研究其源码,以便必要时自己手编分析程序. 
    3.回过头来看编译原理教材. 这时大概会发现,很多理论很容易懂. 
    4.结合教材所附源码,进一步加深对教材的理解 
  • 相关阅读:
    JavaScript 监听回车事件
    上下文(Context)和作用域(Scope)
    图解Javascript上下文与作用域
    JavaScript的作用域(Scope)和上下文(Context)
    Table 边框合并(collapse)
    Aspose.Words .NET如何实现文档合并的同页分页显示
    【C#.NET】Http Handler 介绍---(转)
    Oracle无监听程序
    PL/SQL程序设计、流程控制
    ORACLE函数、连接查询、约束
  • 原文地址:https://www.cnblogs.com/LauSir139/p/5856914.html
Copyright © 2020-2023  润新知