¿Cuál es la diferencia entre compilación e interpretación?

Acabo de conversar con un colega y de dónde hablamos sobre el motor V8 JavaScript. De acuerdo con Wikipedia,

V8 compila JavaScript en código de máquina nativo antes de ejecutarlo, en lugar de técnicas más tradicionales como interpretar bytecode o compilar todo el programa en código de máquina y ejecutarlo desde un sistema de archivos.

donde (corrígeme si me equivoco) "interpretar bytecode"es la forma en que funciona Java y"compilando todo el programa"se aplicaría a lenguajes como C o C ++. Ahora nos estábamos preguntando, debatiendo y planteando afirmaciones y presunciones falsas sobre diferencias, similitudes. Para finalizar esto, recomendé preguntar a los expertos sobre SO.

Entonces, ¿quién puede

nombrar, explicar y / o hacer referencia a todos los métodos principales (por ejemplo, precompilación versus interpretación en tiempo de ejecución)para visualizar o proporcionar un esquema sobre las relaciones entre fuente, compilación e interpretacióndar ejemplos (nombres de lenguajes de programación) para los principales métodos del n. ° 1.

Notas:

No busco un largo ensayo prosaico sobre los diferentes paradigmas, sino una visión general rápida y visualmente compatible.Sé que Stackoverflow no pretende ser una enciclopedia para programadores (sino una plataforma de preguntas y respuestas para preguntas más específicas). Pero como puedo encontrar muchas preguntas populares, eso proporciona una visión enciclopédica de ciertos temas (p. Ej.[1], [2], [3], [4], [5]), Comencé esta pregunta.Si esta pregunta preferiría encajar en cualquier otro sitio de StackExchange (p. Ej.teoría), hágamelo saber o marque esta pregunta para moderación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta