Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Do you think we'll ever see an IL (or other bytecode) processing unit?

It sounds possible and would have a major benefit, because we wouldn't need the JITter. This isn't the same as compiling .NET directly to machine code, since the bytecode here is designed to be programmed and disassembled easily, unlike the bytecode used in x86 processors which is designed to work faster.

What's stopping Intel (for example) from partnering with Microsoft and making such a .NET-optimised processor?

share|improve this question
add comment

closed as not constructive by ChrisF Jan 30 '12 at 22:42

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers

up vote 5 down vote accepted

Theoretically possible, but I doubt it:

  • Cost of developing the CPU would far outweigh the benefits
  • The JITer already does a "good enough" job
  • IL is subject to change with new releases of .Net, so benefits would be short-lived

Sorry - nice idea, but unlikely to happen.

share|improve this answer
1  
(I'm sure you mean not likely to happen) ` ` I generally agree with your points here. IL doesn't change as much as you think though - it hasn't changed much since version 2 (generics). –  configurator Sep 26 '10 at 5:51
    
@configurator: (Thanks - corrrected). –  Kramii Sep 28 '10 at 6:18
add comment

IL is processor and system agnostic.

That's is the main purpose.

IL is compiled by the JIT on the host system and is optimized to take advantage of the processor(s) features.

If your objective is to compile for a specific processor, you can compile .NET code directly using tools like Xenocode.

Knowing how (and why) .NET works like that is essential to develop robust application. Please consider purchasing CLR via C#.

That said, Microsoft is already doing much of it with its .NET Micro Framework and some ARM processors. But it's related to embedded system chips that you usually use in your own hardware that you control. So it makes sense.

share|improve this answer
    
Oh, I'm definitely aware of that. I was just thinking, what if instead of optimising the IL to take advantages of processor features, we optimise the processor to take advantage of IL features? –  configurator Sep 26 '10 at 15:15
    
What are the IL features you are talking about ? –  user2567 Sep 26 '10 at 15:29
    
I don't know. I have never built a CPU so I wouldn't know. But perhaps the fact that code is verifiable? Anyway, processors today are bloody fast and are almost never the bottleneck. I think now's the time to expand their abilities horizontally to make programmer easier rather than vertically to make them even faster. –  configurator Sep 27 '10 at 11:04
    
I think you should learn how a CPU actually work, and why CPU features are so different. You'll see the value of IL out of the CPU. –  user2567 Sep 27 '10 at 11:18
add comment

It's been done - for JVM, but the problem is that, while this was being developed, it turned out that Intel and AMD had moved generic processors on far enough that there was no performance benefit and the costs were way higher. Bear in mind that Intel and AMD have the benefits of scale that bring the cost of their processors down.

The ONJava article Embedded Java references the existence of native JVM processors...

share|improve this answer
    
Intel created a processor that runs the Java bytecode directly without a JITter? How come I've never heard of that? –  configurator Sep 26 '10 at 15:16
    
@configurator probably because Intel did not do it...search for "ARM Jazzel" or JStamp for more info. –  Sandeep Datta Sep 26 '10 at 17:49
    
I edited a bit in response to @configurator - lost the comment that said so! –  Murph Sep 26 '10 at 21:30
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.