这是系列的第二篇文章,和大家探讨编译原理的一些东西.首先说明,编译原理并不是计算机科学当中很初级的东西,因此从某种意义上说最先讲述它并不合适,这只是偶然的机会,因为刚刚大脑里冒出几个关于编译的问题,所以编译就成了最先探讨的话题!再说编译如何不是初级的东西,对我个人而说,编译是我接触到的第一门真正的计算机学科,上学期的数据结构我没有底气说我很好的"接触"它!同时编译原理成为我计算机学习的中轴线,因为它牵扯的东西太多了,首先你要对一门语言作了一定的了解,再就是编译作为一种技术它已经把数据结构思想很好的运用进去了,所以数据结构也要有一定功底,还有就是编译前半部分包括词法语法语义分析集中体现了一些经典算法的神奇,在编译后半部分的代码生成以及关于存储资源分配等问题已经涉及到操作系统甚至更深层的知识,当然这并不是说前半部分就不需要这些深层知识了,这也只是相对而言.
这篇文章并不打算诸如列出所有向下分析的所有算法之类的详细的东西,意在探讨一些边缘问题,当然也会提及我们课堂里学的编译的核心知识,这样做明显是为了不要把文章写成教材,我也没有那样的功力,(呵呵,这都感觉有点吹牛了).
我觉得编译里遇到的一些处理办法不只是在这一门课程中有意义,它在计算机其他领域都是可见与可鉴的!举个例子,自动机.自动机(各种各样的)作为处理外来信息的一种工具一种机制,它要处理的信息有字符串,语句等.匹配这个次频繁的出现体现出它是一种检查机制,信息的提供者所拥有的"知识"还不足以让所提供的信息与机器(或机器的一部分,如机器的语言编译系统)能够处理的信息完全吻合,所以必然要有自动机这种东西出现.这也提醒我们每一种工具一种结构或是一种设置都是有原因的,我们要寻其底(有时候你会发现有些设置是那么愚蠢啊,但是吃了碗拉面回来把问题一想又觉得这人真牛,这样好的构思都想出来了!)我这里好象把自动机这个神通广大的发明物给平凡化了,原谅我这种弱智!因为我明白它的出现以及以后的运用都充满神奇色彩(我是这样认为的),但是以我现在的能力无法给它一个很好的叙述,最近我在看<计算理论导轮>,甚至试图吃掉它,可毕竟那是人家研究生的课程啊,我进展不太顺利!Come back!在这里编译原理给我一种暗示---每个个体间的交流都不是很直接很随便的,他们各有各的标准,所以这就需要很多媒介出现,再想想我们现实生活中是不是你也找到原型了呢?呵呵,外话!
(I have to go now!It's the time of coffee! To be continued !)