【发布时间】:2008-12-14 02:11:35
【问题描述】:
我正在寻找用 C# 编写解释型语言,我应该从哪里开始?我知道如何使用有趣的字符串解析来做到这一点,但正确的方法是什么?
【问题讨论】:
标签: c# parsing interpreted-language
我正在寻找用 C# 编写解释型语言,我应该从哪里开始?我知道如何使用有趣的字符串解析来做到这一点,但正确的方法是什么?
【问题讨论】:
标签: c# parsing interpreted-language
要做到正确可能是一项相当困难的工作。
如果您对编译器理论知之甚少,您可能应该首先开始阅读它。
仅仅使用“有趣的字符串解析”,如果我理解正确的话,根本不会让你走得太远。
第一个基本步骤是编写语言语法,定义该语言的有效语法。
ANTLR 之类的工具可以帮助您将各个部分拼凑起来,但我建议您阅读 Dragon book,因为它是了解该主题的规范起点。
【讨论】:
如果您想在 .NET 上构建一种解释型语言,DLR 是不二之选 - 请查看 Martin Maly 的 LOLCODE 示例,地址为 http://www.iunknown.com/2007/11/lolcode-on-dlr.html
编辑:这是另一个链接,其中包含来自 Scott Hanselman 的更多信息:http://www.hanselman.com/blog/TheWeeklySourceCode11LOLCodeDLREdition.aspx
【讨论】:
查看来自 Microsoft 的 Phoenix compiler。这将提供您构建面向本机或托管环境的编译器所需的许多工具。在这些工具中,我们有一个优化后端。
我赞同 Cycnus 关于阅读 Aho Sethi 和 Ullman 的“龙之书”的建议 (Wikipedia, Amazon)。
RGR
【讨论】: