编译原理初体验(求大牛来拍砖)

来源:互联网 发布:软件招标书范本 编辑:程序博客网 时间:2024/05/22 17:42

      最近学习编译原理,很多东西都是云里雾里的,比如说什么是编译原理?什么是解释原理?课本上解释很多,但是对于像我这样的非科班出身的文科生来说,还是不知所云的。最近在网上浏览类似的帖子,发现了一些牛人的回复,暂时贴出来供大家来怕转评价,以解一时之惑:


  • 如果你老板给你一份文档写着你要做的工作,但是用你不懂的外语写的。现在你找到你一个会这门外语的朋友,编译就是你朋友把文档翻译好,你再照着文档做。你那朋友就是编译器。如果他一边翻译,你一边做,他就成了解释器。
  • 如果程序是生米,那么编译就是一次把所有米给你煮成熟饭,直接吃就可以了,解释程序就是,边吃边煮,再吃一碗的同时,正在煮下一碗。
  • 举个例子,你写了一个机器操作流程指南,给你机器操作者指导使用你的机器。那你写的指南就是程序。

    操作人员是个英国人,你写的是中文。 所以,找了个翻译。全部翻译成英文给操作员使用。 这就是编译方式。   有了英文的指南,就可以把翻译扔一边了。

    另外一个情况, 英国人打开设备,顺便看到使用指南是中文的,不懂,就找了个翻译一步一步讲,然后操作员一步一步按照指南上说的操作了。然后完成了操作。 这个方式叫解释执行。 离不开翻译这个解释器的参与。



           我认为,编译原理就是通过一定的过程来转换的,我们将高级语言编写的代码翻译成对应的机器语言。


       编译过程如下:

      


        看了一些视频和电子书,唯一的收获就是貌似懂得了我用C#写的输出“Hello World”的程序,是怎么一步一步 被计算机所接收,然后被打印出来的。就好像我懂得了一些汽车的构造原理,开起车来就尤其的安心一样。   

       一开始就知道这些,找本电子书来看,突然有种满纸荒唐言,一把辛酸泪的感觉,看不懂啊,有木有。编译原理要掌握到什么程度?学了编译原理我们的学习会有什么变化?对敲代码有什么好处么?是不是我不学编译原理我就不会敲代码,不会做程序呢?

       编译原理的知识很枯燥,是什么理由让那么多的大牛对此执迷呢?那我们这些小菜能不能Hold住编译原理呢?

       针对类似的问题也曾经问过恩师米老师,老师曾说过,现在的知识也许你不能消化,且将他们如蟒蛇吞大象般咽下,一旦有朝一日遇到合适的“酸”,必将他们一起消化掉。知识之间不是独立的,只有知识之间相互联系,相互作用,才能得到产物。到时候将这些知识编织到知识网中,必能牵一线而动全身。

       期待自己的经验颇为丰富的时候再来讨论编译原理,至少在代码量赞足个几万行的时候再来消化它,但同时希望看到文章的人能给与指点迷津,拍砖也可,给出理由,谢谢。