The source code must be compiled before running, unless the device can work as an Interpreter (this is the case of a few bytecode processors). Confusingly, sometimes the term is used for assembly language compatibility, where the source is already human-readable machine code but must be converted to executable code by an assembler.
Source-compatibility is a major issue in the developing of computer programs. For example, most Unix systems are source compatible, as long as one uses only standard libraries. Microsoft Windows systems are source compatible across one major family (NT, 2000, XP or 95, 98, ME), with partial source compatibility between the two families.
Binary compatibility means that programs can work correctly with the new version of this library without requiring recompilation.
A computer system is backward compatible if it is able to work with software or accessories designed for the system it is meant to replace.
It can be said that Perl is backward compatible with awk, because Perl was (among other things) intended to replace awk, and can, with a converter, run awk programs.