Which processors are capable of running Common Intermediate Language(CIL), formerly known as Microsoft Intermediate Language (MSIL)? Clearly any machine that can run Microsoft Windows with .net qualifies as well as machines targeted by the Mono project.
It would appear that the .NET Micro Framework has the ability to target other processors not covered by the above, but it is not clear to me that it uses开发者_Python百科 CIL.
Does anyone have a list of which processors are capable of running a program in CIL and or interpreting C# directly (as the .NET Micro Framework appears to do)?
EDIT to clarify, I understand that CLI is not executed directly on the metal but rather by a a runtime engine. So for this question any processor with a runtime engine that executes CIL qualifies.
None. There is no processor that runs CIL - CIL is to my knowledge ALWAYS translated to another form of machine code.
I think there is a CIL processor "floating around" are research project, but so far not seen in the real world.
The .NET Micro Framework doesn't allow processors to interpret CIL directly. It is simply an even more lightweight interpreter that runs on embedded hardware instead of requiring a full PC architecture. It's like .NET Compact Framework but with a smaller footprint. To look at the architectures that this supports:
.NET Micro Framework Hardware
Afaik, TomTom is right. They call it Intermediate for a reason... it is between the programmer's language and the processor's language. An interesting thought, though - having a processor that runs CIL code.
I found two research processors that execute CIL natively much like the JOP does for Java Bytecode:
SCIL According to the paper it supports a subset of CIL, so the some portions of CIL will have to be emulated in subroutines. Honestly though the processor and paper do not look well put together.
DSP Core for Hardware Based CIL Machine This one looks more legitimate, however its designed with a very specific purpose in mind (DSP on a mobile phone).
Realize that these cores are meant for use with FPGAs. Sadly neither of them provided source code or bitfiles, so you will have to request more information from the authors if you actually want to use them.
On the .NET Micro Framework page it mentions a CLR which is what is running the CIL.
It includes a small version of the .NET CLR...
The supported platforms on mono-project.com list a few architectures.
Though be careful to test it before investing too much time. The only guaranteed targets are those bundled with the Xamarin product. In the past mono was missing floating point support on some ARM architectures which since has been added.
精彩评论