看编译原理(虎书)的一点总结

虽然读书的时候学过编译原理,这次由于要学习状态机,这几天晚上我一直再看编译原理和LUA的源码,与学校的时候比理解起编译原理却是另外一种感觉,以前学编译原理两种感觉一是看不懂,二是不太可能去自己设计一门语言,所以主要目的就变成了应付考试。但是现在看编译原理确是另外一种感觉:一是自己的技术再退步,对编译原理越理解越有这种感觉,二是很多自己过去所理解的认为正确的方式方法,要么是理解的不透要么是错误的。总之看完一遍编译原理的感觉是又把自己打回了菜鸟,以前的眼界太窄了,我龙书也买了是第三版,打算最近要好好理解理解。其实编译原理上的很多思想可意会而不可言传,原因是这个东西太深奥了。有可能100个人看,50个人感觉是一样的,另外50个人有可能是50种感觉,呵呵。就比如说我是做运动控制的,我看到了很多我过去所不知道的方式方法,而且知道自己过去很多地方都是错的。就状态机的理解也不像过去那么肤浅了,词法分析器仅是一方面,我认为编译原理整体都是在阐述如何做一个状态机,看明白编译原理最起码能做状态机的框架啦,嘎嘎。下面说一说除了以上这些我的一些其他小体会,如果还是不对,就当和大家开一个玩笑。

1.C是伟大的

呵呵似乎这个和编译原理无关,的确是,但是自从我看LUA和虎书以后,我明白一件事情,原来代码还可以写到这种程度,过去养成的习惯使我思索怎样对这个东西进行所谓的“面向对象”的封装,我太肤浅,哈或许可以,但是没有办法这么小,太多的递归了,太多的指针了,太多漂亮的数据结构了,复用性简直做的TTMD好了,好的想骂人,最起码自己水平太菜,写不出这么漂亮的代码。过去和人聊天我会说语言并不是很重要,算法和框架才是最重要的,呵呵过去权当我是放屁啦(但是我相信放屁的人一定很多),那是我还并不真正懂得语言(别爱上哥,哥只是个传说嘎嘎),我这样说吧,不是你不懂结构化编程,也不是面向对象真的那么好,之所以你不用结构化编程,是因为你的水平不够,还太差。面向对象解决的并不是效率,它只不过让开发像那么回事而已,另外就是水平差的人太多了,如果不用面向对象老板不好赚钱,还有就是要提高所谓的生产率。最起码几十年,我认为C语言会是所有语言的祖宗,没有办法撼动它的地位。一切都只不过是跳梁的小丑而已。就我所见,C是最接近编译原理的语言,C++是平凡的,C才是伟大的。与JAVA和C#相比,为C打广告的企业很少!仅此而已。

2.递归是一把编程利器

最起码我的大学老师没有说明白什么是递归,我到现在也不明白,有人能说明白嘛?!codeproject上有人总结了各种递归的形式好像有十几种,呵呵有本书叫做《具体数学》也有讲。可惜啊都形而上学了,递归是一种思想,呵呵,,说明白就没用了。

3.山非山,水非水

过去理解数据结构,第一个想到的是指针是内存。看了编译原理以后明白了数据结构也可以当流程用,它的重要性还不止于此,这个东西也是一种思想,或许自己以前真的太菜吧。这是前两天论坛上的一个帖子,地址是

我的代码是这样的:

我认为这个程序是在描述一棵树,生成一棵树,最后根据这棵树得到的结果,这是我看了LUA和编译原理以后才明白的。

4.如果没有做过规约(协议)编程的人,是比较遗憾的

这是我上一个单位研发经理和我说过的一句话,我认为对一般的不是做编译器的人来说,做协议的人和编译原理最近了,当然经常做协议的程序员的水平要比不做的,有可能水平更高些,我只说一般啊。

5.虎书的缺点

很多地方点到为止,大而不全。当然如果能结合具体的代码比如LUA的代码看,会有帮助的多。

真是大放厥词啊,呵呵不过还是比较痛快的,有错的地方您多担待。以前武侠小说上怎么写来着,“无知小儿,也敢妄言什么剑法”,呵呵见笑啦

版权声明:本文为博主原创文章,未经博主允许不得转载。

所有欺骗中,自欺是最为严重的

看编译原理(虎书)的一点总结

相关文章:

你感兴趣的文章:

标签云: