author: Kevin Lynx email: zmhn320#163.com date: 3.6.2009
(相信我,这一节全是废话。)
我不是标题党,但是有必要解释下这个标题。综合来说我就是想与你分享我所学到的。
我会将我实现的这个简单的脚本语言的实现细节展示给你。它将涵盖:词法分析、语法分析
、符号表管理、语法树解释执行、插件管理等内容。
我并不擅长传授编译原理知识。我没有听过编译原理课,所以我也不会编译原理(也许
即使我听了也不会:D)。所以对于这方面的能手而言,我口中的‘DFA‘可能会贻笑大方。
显然,CPPBLOG上有编译原理上的大牛。如果你想学习更深入的知识,可以去请教他们。
vczh(http://www.cppblog.com/vczh/) 看起来是我所说的这个人。在致谢名单里我将真诚地
写上他的名字。他的’手把手xxx脚本‘系列多多少少还是给了我一些有用的信息。
其次是FOX,在词法分析的DFA和NFA那里我请教了他一些问题。虽然我现在又忘了。如
你们所知,理论和实现之间总会隔着鸿沟。
推荐《编译原理与实践》(<Compiler Construction:Principles and Practice>
Kenneth C. Louden)这本书。在你将来阅读我的脚本语言的实现代码时,你会发现有很一些地
方同这本书里的TINY语言实现代码有相似之处。建议你阅读TINY的代码。
感谢VIM、GCC、GDB、MingW,我用这些软件在工作之余写出了这个东西的几千行C代码。
很明显我是个开源文化的爱好者。但是我不会告诉你unix有多么多么好,因为我也是个初学
者,我还不懂unix。开源在我看来更是一种分享知识的精神。让这种精神如同GPL一样病毒
式地传染下去。
还有版权问题。但也许它不是个问题。我不会添加任何版权信息。我允许你任意传播、
改动我所散播的东西,但是唯一的基本条件是:保留作者的信息---不要告诉别人,这东西
是你做的。
在所有的文章发布后,我都可能会再次修改。也许通过RSS或者日志日期之类你可以获
得修改提醒。