un compilador es un programa que puede leer un programa en un lenguaje (el lenguaje fuente) y traducirlo en un programa equivalente en otro lenguaje (el lenguaje destino) Un intérprete es otro tipo común de procesador de lenguaje. En vez de producir un programa destino como una traducción, el intérprete nos da la apariencia de ejecutar directamente las operaciones especificadas en el programa de origen (fuente) con las entradas proporcionadas por el usuario Un intérprete traduce instrucciones de alto nivel en una forma intermedia para ser ejecutado. En contraste, un compilador, traduce instrucciones de alto nivel directamente en lenguaje de máquina. El intérprete traduce un programa línea a línea mientras que el compilador traduce el programa entero y luego lo ejecuta. El intérprete detecta si el programa tiene errores y permite su depuración durante el proceso de ejecución, mientras que el compilador espera hasta terminar la compilación de todo el programa para generar un informe de errores. Un programa compilado es más seguro que uno interpretado, porque no contiene el código fuente, que puede ser modificado incorrectamente por el usuario. El compilador procesa todo el programa; El intérprete interpreta el código línea por línea. El compilador produce un código de máquina binario; El intérprete genera un código intermedio. El código de máquina del compilador se puede guardar y reutilizar una vez compilado; El intérprete tiene que interpretar el código fuente cada vez. Los compiladores examinan la validez de la sintaxis del código; los intérpretes comprueban las palabras clave. En el compilador, la ejecución del programa es rápida; en el intérprete, la ejecución del programa es lenta. La depuración es complicada en los compiladores; la depuración es fácil en intérpretes. Los compiladores muestran errores después de verificar el código fuente completo; los intérpretes muestran los errores de cada instrucción en el código en la secuencia especificada. . El código de máquina del compilador se procesa aún más por hardware; El código intermedio del intérprete es procesado por otro programa especializado. Los compiladores no requieren un archivo de código fuente en el momento de la ejecución; los intérpretes necesitan un archivo de código fuente para la ejecución en tiempo de ejecución. En los compiladores, la ejecución del programa se realiza después de la etapa de compilación; los intérpretes ejecutan directamente el programa sin ninguna compilación. El compilador usa más memoria; El intérprete requiere menos memoria.