对于编译原理的看法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于编译原理的看法相关的知识,希望对你有一定的参考价值。
今年大二的我刚刚触及到这个知识,一开始觉得这个知识大概就是编译器一类的,想想觉得没有什么作用,软件上都有,但是自从看了网上的资料以及老师的讲解之后,我渐渐改变了我的看法。
在我看来,(编译原理)是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。是计算机专业的设置的一门重要的学科,尽管很多人都觉得学这个其实对自身没有什么太大的用处,即使我起初也是这样想的,但是这门课在理论、技术、方法上都能够对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。因为开始会比较的枯燥以及无味,所以可能会让很多人都没法去学习。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。 我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。
但是这门课仍然成为了研究生入学考试的必考内容,由此可知其重要性。
在我看来,这门课是一门真正与代码做斗争的课程,对于一个有至于追求技术的人是不容错过的课程,而且编译原理可以说是一个计算机科学的缩影。你学习它更多的是去追寻程序设计语言的本质,任何东西都有着其作用及用途,但是编译原理的学习中所获,所思的东西足以让你终生获益。当自己去学习到深入时,思考到别人思考不到的东西,做到别人做不到的东西,我觉得这就是成功。
它所学来的益处我在网上所知道的:1.可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的
2.可以更加客观的比较不同语言的差异 3.更不容易被某个特定语言的宣扬者忽悠
4.学习新的语言是效率也会更高
5.其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余。
由上述所知,假如自己学习的是c语言,过去还不知道或者有点难以理解的原理,可能学习这个之后,就豁然开朗。它也能让自己以后学习其他语言更加的容易,并且可以坚定自己的立场,能够最大程度上做好一个程序。
所以我觉得不管是以前怎么认为的你,现在应该尝试去学习学习,学好了它,不仅仅能够透彻的去看待过去的一些c、java等问题,而且能够尝试给自己做一个编译器来给自己提供便利的打代码环境,我觉得不学的确有些可惜。
至于怎么去学习的问题,我觉得应该要尽可能熟练的去温习温习过去c语言带来的知识,并且能够对数据结构的字符串、树以及图有着比较熟悉的理解,还有如今学习的离散数学的对树和图的相关理论比较了解,明白汇编指令、数据在CPU和存储器之间的交互机制的汇编语言,当然,要把这本书学习好之后,再去学习龙书才能更有效率的去深刻学习它。
毕竟没学过,所以就知道这么多~~~!
-------来自广州商学院的商软二班的202帅哥天团的BOSS
以上是关于对于编译原理的看法的主要内容,如果未能解决你的问题,请参考以下文章