CIL Interpreter in SB
Root / Talk About Programs / [.]
computableeCreated:
So this is a project I think I want to try: making a CIL interpreter in SB!
If you don't already know, CIL (short for Common Intermediate Language, formerly MSIL - Microsoft Intermediate Language) is the base language for the .NET framework. It is an object-oriented assembly language, and is Microsoft's implementation of the CLI standard. CIL is assembled and recompiled at runtime to be run by the CLR.
What all this means is that it's a single language that all languages for the .NET framework are compiled to; yes, that means C#, Visual Basic, and F#. They all end up as CIL. The benefit is that you can have language-neutral code. This means that you can write a class in VB and use it in C#, and then use that project in F#!
That's not the only benefit. By making a CIL interpreter, we can then move toward larger projects, like .exe execution and .dll support in SB! This means that we may eventually move toward C#/VB/F# compilers IN SMILEBASIC. It will be slow but it will be possible.
So why am I posting this here? Well, I need some help, specifically people who are experienced .NET programmers. There are many classes/structs/etc. that will need to be ported as well, and that's far beyond what I can do myself. Additionally, I'd like to request help if anybody else here is experienced with writing CIL code. I can write programs, but there are many odd opcodes and keywords that I'm not too familiar with. I'd like this implementation to line up with the CLI specifications.
If anyone would volunteer for this project, it may be the most groundbreaking project in all of SmileBASIC, since it would lead to running .exe's on your DS (so long as they are managed code). I would prefer people who are experienced with the .NET framework and have some knowledge of CIL assembly, though the latter qualification isn't necessary (just preferred).
Sounds cool but nearly impossible.CIL is surprisingly simple (until you get into the type system). The biggest hurdle will just be all the .NET libraries, but maybe we can just port over mscorlib.dll once we get the interpreter running.
CIL is surprisingly simple (until you get into the type system). The biggest hurdle will just be all the .NET libraries, but maybe we can just port over mscorlib.dll once we get the interpreter running.Oh please do this! I am dying to see if a 3d renderer can be made a la quake 1/2 in this :)
Seeing Windows applications 1:1 ported to SmileBASIC would make me SO excited!!
Though, I never knew about CIL! :0
I actually kinda thought it'd start off running binary EXE's to do that though, but CIL, from my limited inferred understanding, sounds like it might run faster emulated.
And this means we might have another means of creating SmileBASIC compatible programs on our hands. Ones we can write, test, and debug on PC.
(Though, for that, I'd first assume making a SmileBASIC custom designer on PC lol)
Anyway, I've messed with VB.NET, but not CIL so I probably wouldn't be of help other than testing.
Anyway, I really want this to go through! ^u^
Seeing Windows applications 1:1 ported to SmileBASIC would make me SO excited!! Though, I never knew about CIL! :0 I actually kinda thought it'd start off running binary EXE's to do that though, but CIL, from my limited inferred understanding, sounds like it might run faster emulated. And this means we might have another means of creating SmileBASIC compatible programs on our hands. Ones we can write, test, and debug on PC. (Though, for that, I'd first assume making a SmileBASIC custom designer on PC lol) Anyway, I've messed with VB.NET, but not CIL so I probably wouldn't be of help other than testing. Anyway, I really want this to go through! ^u^Something like this ? http://smilebasicsource.com/forum?fpid=13589#post_13589
That's the reverse situation. Being able to "write, debug, and test on PC" only requires a common language at all, which CIL... would provide.<snip>Something like this ? http://smilebasicsource.com/forum?fpid=13589#post_13589