-
Compilers - translated into basic machine code, source code
not available at run-time, generally very efficient.
-
Interpreters - translated into intermediate representation, source
code available for reference at run-time, generally somewhat less efficient.
Endpoints are clear, but there are lots of gray areas in the middle.