2010-09-06 17 views
5

Duplicar posible:
How does an interpreter/compiler work¿Diferencia exacta entre el compilador y el intérprete?

Hola ¿cuál es la diferencia exacta entre el compilador e intérprete?

+0

Esto es algo que podría buscarse en una búsqueda en Google – Raj

+5

Deberíamos ser más amables con los noobs. No veo ningún problema al hacer esa pregunta aquí. – pavanlimo

+0

@pavan, después de las primeras cien preguntas de esta clase (es decir, duplicadas y/o triviales), puede comenzar a ver el problema ... :-) –

Respuesta

5

De Wikipedia:

  • Compiler: Un compilador es un programa de ordenador (o conjunto de programas) que transforma el código fuente escrito en un lenguaje de programación (el idioma de origen) en otro lenguaje de programación (el idioma de destino, a menudo tiene una forma binaria conocida como código objeto).
  • Interpreter: Un lenguaje interpretado es un lenguaje de programación en el que los programas se ejecutan ("interpretan") "indirectamente" por un programa de intérprete. Esto se puede contrastar con un lenguaje compilado que se convierte en código de máquina y luego se ejecuta "directamente" por la CPU del host.
3

Compiler

Un compilador genera el código de montaje depende de la máquina que puede ser montado y vinculado a en los códigos de operación apropiados de la máquina para permitir que el programa a ejecutar. Este proceso solo se puede ejecutar en tiempo de compilación.

Intérprete

Un intérprete genera código independiente de la máquina que puede estar en la marcha compilado a código de montaje (por ejemplo compilación Just-In-Time). Este proceso se puede ejecutar en tiempo de compilación y/o tiempo de ejecución.

Espero que esto ayude!

+0

Pocos intérpretes alguna vez producen códigos de máquina. A menos que el código de máquina vaya a persistir y reutilizarse (en cuyo caso, la cosa que hace la conversión es un compilador), la mayoría de los intérpretes se dan cuenta de lo que se debe hacer y simplemente lo hacen sin generar ningún código de máquina primero. El único caso en el que un intérprete generaría normalmente un código de máquina sería algo así como la instrucción IN/OUT del 8080 que requiere una dirección codificada. Para manejar una instrucción "OUT 100.5", el intérprete almacenará las instrucciones "OUT 64h" y "RET" en algún lugar fijo, carga A con 5, y LLAME a ese punto. – supercat

Cuestiones relacionadas