It translates and executes code statement by statement, so an error on a later line may not be reported until execution reaches it It reports all syntax errors in the whole program before executing any line It produces a standalone executable file that runs without the interpreter Interpreted programs always run faster than compiled programs
It compiles the source to bytecode, which the Python virtual machine then executes It compiles the source directly to native machine code It interprets raw source text line by line with no compilation step It converts the code to Java bytecode and runs it on the JVM
The compiler imports a precompiled module at execution The linker attaches the iostream library at run time The loader loads iostream into memory when the program starts The preprocessor textually inserts the header's contents before compilation
It checks syntax only, without generating any code It compiles intermediate code (such as bytecode) into native machine code while the program is running It compiles all source code to machine code before distribution It converts machine code back into source code
The compiler always refuses to compile the program A std::runtime_error exception is always thrown The result is always 0 Undefined behavior: the standard does not guarantee any exception