loop_in_codes

低调做技术__欢迎移步我的独立博客 codemaro.com 微博 kevinlynx

实现一种解释性脚本语言(一)

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或者日志日期之类你可以获
得修改提醒。

posted on 2009-03-06 15:58 Kevin Lynx 阅读(6503) 评论(4)  编辑 收藏 引用 所属分类: kl脚本实现编译原理

评论

# re: 实现一种解释性脚本语言(一) 2009-03-06 16:30 陈梓瀚(vczh)

手写词法分析器不会DFA、NFA什么的其实也是无所谓的,经验到了也能写好。  回复  更多评论   

# re: 实现一种解释性脚本语言(一) 2009-03-06 22:03 沈臻豪(foxtail)

对啊@陈梓瀚(vczh)
  回复  更多评论   

# re: 实现一种解释性脚本语言(一) 2009-05-23 15:38 AJkm

kl是你自己写的开源脚本引擎吗?  回复  更多评论   

# re: 实现一种解释性脚本语言(一) 2009-05-23 17:05 Kevin Lynx

@AJkm
是的。:)
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理