那天在《CSDN开发高手》上看到一个篇关于VB中嵌入VB编译器使用例子,从而实现了动态编译过程。现在的编译器都十分庞大,就连Linux下的Gcc也是大得吓人,如果让它嵌入你的程序, 显然 没有办法。其实真正核心的编译器部分大致就是词法分析,语法分析,语义分析和代码生成。像Java这样的编译器,要精简,也是不到1MB就能搞定的。
前几天在和一帮学生谈编译器的开发,由于我之前已经尝试自己搞这样的开发。发觉其实编译器并非像一些人想象中的那么复杂。最终问题也就是核心算法的问题。似乎又是回到核心算法问题了。你晓得这个算法的原理,那么你就会觉得简单,如果你不知道,当然就会觉得复杂。就比如微积分,你学过它的原理,你就知道怎么计算圆的面积,如果你没学过,你肯定觉得它简直不可能精确地算出来。
我记得之前《程序员》杂志上有人这么说,一旦你做项目的功力强了,只要有时间,即使像Office这样的系统也能设计出来。不过我就迷惑了。做项目做得久,并不代表你的学识就强了。Office这样的系统中肯定有它特别的核心算法,如果你不知道,你没学过,你能自己去发明,自己去创造吗?不说Office吧,还是回到编译器的开发。如果你做项目的功力很强,你能说你做得出Delphi吗?编译技术的理论是好多著名的科学家用了很多年的时间来完成的,难道你做项目的功底强就能自己创造?做项目的功底其实无非就是一种经验的积累,做多就是了。而学识则需要一个人潜心地学习,理解,很多时候还需要老师来指导(这就是为什么学习过程中需要老师).
在企业的人瞧不起大学生。认为他们没有能力。其实也就是没有经验而已。不过在中国,大学的研究开发能力还远远强于企业。我不敢多说,至少像政府,军工,863的这样的大项目,通常还是交给大学来做的。
打印 | 张贴于 2004-02-28 10:07:00 | Tag:暂无标签