"intermediate language" - not a machine-specific binary. Why?
Well, depends on which form of intermediate language you mean.
Those which are meant to run on virtual machines are dependent on the virtual machine architecture and can run on any machine as long as the virtual machine can be made to run correctly on it.
@RBX I think you are talking about things like Java, which uses an interpreter to take byte code and turn it into machine specific code. I would not call that a virtual machine because that term refers to a software based computer that allows a full OS install. But the process is similar. That is one meaning of intermediate language. There are two others I have heard. For example, portable code that complies for different machines is sometimes said to be written in intermediate language because it can output binaries for different operating system. So it is going to depends on what they are calling an intermediate language in that class.
@e.mccormick I don't think VMs are limited to providing ability to produce an environment for OS installation. IMO, JVM too is a VM as it emulates a machine that takes bytecode and produces machine code. I did guess there'd be other types of intermediate languages judging from your answer earlier, so I talked only about those are meant to run on VMs. I've heard little about programming in intermediate language but anticipated that too should exist. What I've mostly heard in portable programming is about excluding system specific calls (like system("PAUSE") in C - which works only on windows).
Join our real-time social learning platform and learn together with your friends!