Which .NET Programming Languages Have a CodeDom Provider?
Asked Answered
H

1

5

Aside from C#, VB.NET, C++ (Managed and C++/CLI), and F#, which .NET programming languages have their own CodeDom provider?

Handsomely answered 18/1, 2010 at 5:56 Comment(0)
T
3

I thought about making one for UnrealScript, but I run into odd issues like the fact that CodeBinaryOperatorType doesn't include an exclusive-or operation. The new expression trees in .NET 4 seem like a much better representation of what features the CodeDom should offer at a block level (as in a block of statements that makes up a function body).

I think we need a new CodeDom that takes the outer portions of System.CodeDom and uses the internals of System.Linq.Expressions. Then make the result able to produce either a dynamic assembly or source code as output. (Now that I think about it, producing a compiled assembly would actually be the same as creating a new "language" to output source to.)

Edit: On top of that, you also have to consider implementing the CodeModel API, since very often the CodeDom is implemented as someone is integrating a new language into Visual Studio.

Terryn answered 18/1, 2010 at 5:56 Comment(2)
During the last Lang.NET symposium one of the language creators complained about something similar and the Microsoft engineer responded (only half joking): "CodeDom can represent any language as long as it is C#." He basically admitted that CodeDom is a failure and that Expression Trees (or rather "Statement" Trees) are the way forward.Beggs
@JörgWMittag: Can Expression Trees be used to generate source code for a whole class?Hinshaw

© 2022 - 2024 — McMap. All rights reserved.