编译原理

    编译原理是大二这年刚接触的课程。第一堂课老师提了三个问题给我们:编译原理是什么?为什么要学?怎么学?带着这三个问题我默默地打开了老师发的链接。知乎上的回答内容太强大,看完几个知乎问题回答后,我几乎都不知道自己到底看了什么。不过有些回答的内容倒挺令我印象深刻的。

     个人对于编译原理的理解就是一门解释研究程序员写的代码如何变成计算机能够读懂的语言。因为我们写的代码都是用编程语言写的,它们很多都是用英文单词语句表示的,而计算机能够理解的只有0和1。但我们写的程序编编能够被计算机识别,所以这其中肯定有什么起到了翻译的作用。前辈们根据他们的知识理论做了很多编译器,正是因为这些编译器的存在,才使得编程轻松了很多。老师说,编译原理就是研究什么词法,语法,语义,中间代码生成等的。但我觉得好虚,听不懂。

      自己是个比较功利性的人,做事总带着一定的功利性。没想到一开学老师就提出了我想问的问题:为什么要学编译原理,学了有什么用。只有对这些问题有了一些认识后,知道学了对自己有什么用处后,自己才能学的比较用心。程序代码在通过编译器的解释后才能生成能被计算机所识别执行的命令。而这些编译器是根据别人的思想设计出来的。也就是说,我们写的代码必须要符合做编译器的人的思想设计要求才能够编译运行。这也是为什么有些人会说不懂编译原理就是在别人的设计哲学下面工作的原因。这是不对的,因为就算一个人他对编译原理很精通,他应该也不会为了摆脱别人的设计哲学而特地做一个编译器吧。总之学号编译原理是有用的。当我们对编程语言有了一定的基础后,学习编译原理我们的基础会更加牢固。有了牢固的基础,学习别的一些自己没接触过的知识也容易上手些。但我觉得我们应该统筹规划分配自己精力和时间,不要顾此失彼。每个人所接受的知识基本都是一样,关键是自己怎么运用自己掌握的知识,让它们发挥出的作用。而且当今社会是个合作社会,我们虽然不可能样样精通,但可以略懂一二,对于我们不会的事情,我们知道谁会然后找他帮忙就好了。

原文地址:https://www.cnblogs.com/weixingna/p/5979822.html