2011-02-23 42 views
1

我是学生,我想为自己的一般目的建立自己的.net语言,只是为了看看它是如何完成的,并且学习新的东西。你认为什么是更好的选择?建立以CLR为目标的静态语言还是在DLR之上构建动态语言?为.NET构建静态和动态语言有什么区别?

  1. 构建这两种语言的过程中的哪些步骤有所不同?
  2. 什么是可用于生成扫描仪,分析器和CIL代码的工具?我发现人们推荐使用antlr分析器生成器来生成AST,然后将其转换为DLR表达式树,因此您不需要生成CIL代码。
+2

每个人都应该建立一个新的.NET语言,只是为了好玩。 –

+0

这是为什么downvoted?我看到问题,但没有严重......标题中的问题比文中的问题更好。这是最多的答复。 – Skurmedel

回答

1

我肯定会推荐ANTLR和它的书。除非你真的了解你的语法,否则你需要参考资料。

我也建议使用ANTLR AST来生成CodeDom。您可以使用DLR或不使用DLR,具体取决于您想要制作的语言种类。

虽然这两条路线都获得了很大的成功。

我也生成了CIL,这并不可怕,但确实有效。把它作为最后的手段。

+0

你可以从CodeDom生成CIL? – Vladimir

+0

你可以从CodeDom生成任何你想要的东西,你可以写它的两端(CodeProvider和CodeGenerator),因此可以完全控制。当我生成IL虽然,它是通过一个非CodeDom生成器(这是CodeDom我认为之前)。我当然不会推荐使用CodeDom来生成IL,我认为这将是一件非常奇怪的事情。 – Task

相关问题