如何使用C编写脚本语言? 任何的想法?链接?
答案 0 :(得分:16)
您的意思是,如何编写用C语言解释的语言?
如果是这样,您需要查看以下主题的维基百科和其他来源:
这比你想象的要多得多......快乐阅读!
答案 1 :(得分:5)
您可以查看书籍"The UNIX programming environment"
http://cm.bell-labs.com/cm/cs/upe/covers/english4.gif
在本书的最后,几乎是最后一章,作者用C语言编写了一个小型翻译,并逐步提供了足够详细的信息。非常有趣,非常容易理解。
该解释器的源代码是here
答案 2 :(得分:4)
为什么不查看(简单)脚本语言的C代码?也许Lua? (link )
也许您还应该阅读关于parser generators的一些内容,这是您的程序可以解释语言的第一个构建块。第二个块是实际做的,正在解析的内容(有时你可以将它集成到解析器中,它可以在每个令牌/每个被解析的结构上回调函数)。简单的例子,比如解析和执行数学公式可能有所帮助。
答案 3 :(得分:3)
有一本名为"Constructing Language Processors for Little Languages"的好书,可以帮助你入门。这是非常务实的,并解释了随着您的需求变得更加复杂的各种选择。
除此之外,你基本上想要研究一两本关于编译器和口译员的书。如果你想要一个阻力较小的路径,并且你这样做是为了理解概念而不是你需要的类或工作项目,那么看一下C的替代方案,比如Lisp或Scheme,这样可以更容易地构建在小实验上。或者学习用更简单的语言构建DSL(Boo,Groovy)。
答案 4 :(得分:1)
这是一个非常普遍的问题,很可能会被关闭,但是嘿,我不妨发布这个答案:Lua(http://www.lua.org)是一种用C语言编写的非常流行的脚本语言。你可以用它来做灵感。
答案 5 :(得分:1)
我的建议是从Recursive Descent Parser开始。
如果你喜欢这些东西,那么你应该明确地获得Dragonbook的副本。
答案 6 :(得分:0)
您可以查看ANTLR [link]