哪种.NET编程语言有CodeDom提供程序?

pla*_*ano 5 .net codedom system-codedom-compiler

除了C#,VB.NET,C++(Managed和C++/CLI)和F#之外,哪些.NET编程语言都有自己的CodeDom提供程序?

Sam*_*ell 3

我考虑过为 UnrealScript 制作一个,但遇到了奇怪的问题,例如CodeBinaryOperatorType不包含异或运算。.NET 4 中的新表达式树似乎更好地表示了 CodeDom 应在块级别(如构成函数体的语句块)提供的功能。

我认为我们需要一个新的 CodeDom,它采用 System.CodeDom 的外部部分并使用 System.Linq.Expressions 的内部部分。然后使结果能够生成动态程序集或源代码作为输出。(现在我想了一下,生成一个已编译的程序集实际上与创建一种新的“语言”来输出源代码相同。)

编辑:最重要的是,您还必须考虑实现CodeModel API,因为 CodeDom 通常是在有人将新语言集成到 Visual Studio 时实现的。

  • 在上一次 Lang.NET 研讨会上,一位语言创建者抱怨了类似的情况,微软工程师回应(半开玩笑):“CodeDom 可以表示任何语言,只要它是 C#。” 他基本上承认 CodeDom 是失败的,而表达式树(或者更确切地说“语句”树)是前进的方向。 (4认同)