zoukankan      html  css  js  c++  java
  • 0909 编译原理的学习

          在21世纪的信息快速发展时代,计算机的技术已经渗入到生活当中。因此,我们需要学习更多的计算机的专业知识。『编译原理』这门课程是一门设计和构造编译程序原理和方法的课程,是计算机各专业的一门重要专业基础课。这门课程旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。 我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。

          这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是『编译原理』却一直作为『大学本科』的必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决著名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间诞生不少名著的相关数论。还有,这门课程实际蕴含着计算机学科中解决问题的思路、形式化问题和解决问题的方法,并且这些思路和方法除了对应用软件的设计与开发具有一定的启发和指导作用外,在提倡创新的时代下具有非常重要意义。根据以上所述,大学就是因为以上原因才开设这么课程的。

          我们应该端正意识去学习。首先,编译原理在静态文本处理上有广泛的应用,举个简单的例子,把HTML文件转化为纯文本,利用编译原理来实现”非常”简单.理解了编译原理的实用性,大概可以提高学习兴趣。第二;反复看书: 这个办法看起来最笨,却是基本的方法。忘了是哪位名人说过,书只要多看,总能看得懂的.第三:结合源码来看: 这是经典教材Compiler Design in C的作者Allen Hollub建议的方法。这本教材的特色就是包含了大段yacc,lex的代码.这也是个好方法,而且,只有看懂了代码,才能说在根本上理解了理论。当然,要完全看懂yacc的代码,工作量是很大的,而且同样要先理解理论。

          最后,如果没有学习理论课,根本不知如何创建编译器。如果学习了,应该会有一点思路吧。

  • 相关阅读:
    iOS开发数据库篇—FMDB简单介绍
    SQLite简单介绍
    iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
    使用Block在两个界面之间传值
    ios NSURLSession使用说明及后台工作流程分析
    iOS archiveRootObject 归档失败问题
    iOS开发UI篇—ios应用数据存储方式(归档)
    iOS archive(归档)
    CoreData数据库升级
    iOS开发过程中使用Core Data应避免的十个错误
  • 原文地址:https://www.cnblogs.com/huang123/p/4795382.html
Copyright © 2011-2022 走看看