Defiance/Jim T was building a blitzmax compiler for .net, but he dropped it. Theres a thread somewhere on www.devcrunch.com about it.
I had started on a blitzbasic compiler in c# and codedom a long ways back. Its just a project I pick up for an hour or 2 every so often, but I'm sure if I stuck with it I could have it complete relatively quick.
Weekend before last, just for fun I started on a seperate blitz compiler, this time using blitz. It outputs raw il, and has the mono ilasm.exe tool assemble it into a .net exe. My goal is to eventually have the blitz version compile itself into a .net version( but right now, its pretty much limited to printing expressions ). I'll put up a zip if anyones interested.
Anyways, I think .NET makes writing compilers a bit easier, because of the CodeDOM classes and the stack based nature of il. I was learning il as I went, and got my 2nd version producing meaningful exe's pretty quickly. If the powers that be at BRL would want a .net version, I'd be really interested in helping out.
Not to mention, I would like pick marks brain about how he goes about working on his compilers..
@neilo - Regarding passing of structs, you have to understand that .net splits up the type system into reference and value types. C# structs are value types, and the default behaviour of passing by value is to create a copy( ie, when you pass them into methods ). If you use the 'ref' keyword though, they are passed by reference and even large structs can be fast n cheap. There's no need for unsafe contexts to have speedy structs.
I had started on a blitzbasic compiler in c# and codedom a long ways back. Its just a project I pick up for an hour or 2 every so often, but I'm sure if I stuck with it I could have it complete relatively quick.
Weekend before last, just for fun I started on a seperate blitz compiler, this time using blitz. It outputs raw il, and has the mono ilasm.exe tool assemble it into a .net exe. My goal is to eventually have the blitz version compile itself into a .net version( but right now, its pretty much limited to printing expressions ). I'll put up a zip if anyones interested.
Anyways, I think .NET makes writing compilers a bit easier, because of the CodeDOM classes and the stack based nature of il. I was learning il as I went, and got my 2nd version producing meaningful exe's pretty quickly. If the powers that be at BRL would want a .net version, I'd be really interested in helping out.
Not to mention, I would like pick marks brain about how he goes about working on his compilers..
@neilo - Regarding passing of structs, you have to understand that .net splits up the type system into reference and value types. C# structs are value types, and the default behaviour of passing by value is to create a copy( ie, when you pass them into methods ). If you use the 'ref' keyword though, they are passed by reference and even large structs can be fast n cheap. There's no need for unsafe contexts to have speedy structs.