编译原理的地位和作用
A. 学习编译原理有作用
在毕业多年后我又翻出了当年的编译原理书,然后又买了一本类似的书,真是太有用了。
无论是工作上还是业余中如果想编一点稍微有一些智能的程序,必然要用到。目前大家都在用的正则表达式是用编译原理做的,那只是一个很小的应用例子。
大一点的应用可以做到一定的技术先进性,从而让你在本行业站稳脚跟。
比如
可以用语法分析来分析出一段用户上传是否含有代码,从而让你的网站更健壮。
分析和分解用户输入的SQL语句,理解是否有害和是否有SQL注入。
在业务软件中结算方面允许用户输入条件表达式和四则运算,允许用户自定义结算公式或条件,使软件上一个档次。
甚至可以实现自己创造的编程语言,以后编程全用自语言来做,然后编译成老板要的那种语言。有的公司要JAVA,有的公司要C#,C++,VB等等你都不必每样都费心了。这样做还有一个好处,你的源程序其实是自语言,目标代码则是社会上公认的源程序,所以是可以公开的。如果以这种技术为核心技术开公司的话,则有着技术上更高一层的先进性,这种核心竞争力是很值钱的。
试想,你公司的员工只会用自语言,他们跳槽的机会就少了。而你公司的用户总是可以得到全套的他们认为的源程序,则市场机会就大了。别的一般软件公司可不敢给出全套源程序,总要多少保留一点的。
B. 编译原理 学的是什么
编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 目前各个大学使用的教材机械工业出版社、国防工业出版社出版的《编译原理》。
编译原理课程
这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的 必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。 我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪 50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟 编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决着名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间 诞生不少名着的相关数论。
C. 数据库,数据结构,编译原理对编程有那些影响和帮助
他们太重要了,
(1)数据结构:首先要明白---->程序=算法+数据
“数据结构”就是做数据这块的,例如一个“电影播放器”程序,首先要有“电影”吗,这个就是“数据”,那么就要用“数据结构”的知识,怎么存储每一帧,怎么高效,怎么能无损,怎么空间最节省.........,然后才是怎么去“解码”(解码就是“算法”做的啦),当然这么讲起来不是很严谨,但你可以看得出,数据结构可以说的上是有50%的重要性了。
(2)编译原理:不要以为,自己不去开发“语言”,编译原理就没有用啦,它能让你从根本上理解编译器,这对怎么提高程序的效率,怎么变出漂亮的程序很有用................当然貌似如果从事,“人工智能”这一块的话,编译原理也非常重要。
(3)数据库:又是刚才哪一点----------->程序=算法+数据
数据以文件的形式存储,是在不是很高效,所以,为了方便数据的管理与查找等等..........人类作出了“数据库”,说白了,它就是用来解决“数据”这部分内容的,现在基本无论你做什么都离不开数据库了,从大型网游到网站,到手机等的移动设备编程,都要用到数据库
--------------------------------------------------------------------------------------------------
从你的体温来看,你可能刚刚接触编程,没有做过什么成品,随着你越来越了解这个领域,你会刚到这些东西非常重要,当然还有很多东西,与以上三者地位相当,或更高,例如,微型计算机组成原理,等一些硬件方面的知识.......................................
---------------------------------------------------------------------------------------------------
还是“广泛阅读”吧。
D. 学了计算机原理和编译原理有什么用
这两门都是计算机专业非常底层的学科
计算机原理是将计算机内部的工作原理,比如二进制的加减乘除、内部通信机制等等,这些对以后的编程学习作用不是很大,但是当你编程过程中,因为某些个十六进制、二进制、数据类型等引起程序无法运行时,你就会明白,平时极少用到的绣花针,在关键时刻,是非常的有用的。
编译原理是讲述机器是如何将高级程序语言转换成机器唯一能懂的机器语言的,以及编译软件是如何工作的。掌握了这些,就好像掌握了武功心法一样,即便所有的编程语言虽然各有各的特点,千变万化,但是万变不离其中,编译原理还是那一套,你掌握了武功心法,对你以后学习这些高级编程语言,都是大有裨益的。
E. 结合工作体检,谈谈你对编译原理的认识,以及其在整个计算机科学中的地位.
觉得编译原理对了解程序有好处,就拿正规表达式来说吧,正规表达式定义了一种正则文法,根据文法定义语言
F. 如何学习编译原理
编译原理是本科计算机课程中最难的一门了,因为它实在是太抽象了,而且学过之后很容易忘记,但是它又是非常重要的一门课程,起到了承上启下的作用。
学习编译原理,不要死看课本,课本都是翻译国外的,读起来有点吃力。结合习题是比较好的,可以理解一些概念。
另外,可以用lex和yacc实现一个词法分析器和语法分析器,如果这两个实验跑通了,对你学习编译原理的学习非常有帮助。
G. 编译原理对于计算机专业的学生重不重要
编译原理这门课,对很对计算机专业的同学可以算是最难的一门课。如果你能学的懂这一门课,那么可以说,你计算机的知识已经学的很透彻了。如果你想成为一个高手一个牛人,那么久一定要好好学这门课。如果你只是想随便找个工作混混日子,那无所谓。
编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。
虽然找工作面试这个问的很少,但是个人觉得这个能学好,很是必要。