What is the difference between a native compiler and a byte-code compiler?
A native compiler, like the Roadsend Compiler, translates source code into a sequence of binary digits representing instructions which will be directly executed by the CPU. A byte-code compiler, however, translates source code into a sequence of bytes representing instructions which will be executed by what is known as a “virtual machine”, a program which translates byte-code instructions to machine instructions and then executes those machine instructions on the actual CPU. The advantage of compiling to byte-codes is that you only need to port the byte-code interpreter (the virtual machine) in order to support a new platform instead of an interpreter/compiler for the source language, which is much more complex. The disadvantage is that, since this translation from byte-code instructions to machine instructions needs to happen every time you run the program, byte-code compilation is inherently slower than native compilation.