¿Qué es el compilador?
Un compilador es un programa de computadora que transforma código escrito en un lenguaje de programación de alto nivel en código de máquina. Es un programa que traduce el código legible por humanos a un lenguaje que entiende un procesador de computadora (bits binarios 1 y 0). La computadora procesa el código de la máquina para realizar las tareas correspondientes.
Un compilador debe cumplir con la regla de sintaxis de ese lenguaje de programación en el que está escrito. Sin embargo, el compilador es solo un programa y no puede corregir los errores encontrados en ese programa. Entonces, si comete un error, debe realizar cambios en la sintaxis de su programa. De lo contrario, no se compilará.
¿Qué es un intérprete?
Un intérprete es un programa de computadora que convierte cada declaración de programa de alto nivel en el código de la máquina. Esto incluye código fuente, código precompilado y scripts. Tanto el compilador como los intérpretes hacen el mismo trabajo que es convertir el lenguaje de programación de nivel superior a código de máquina. Sin embargo, un compilador convertirá el código en código de máquina (creará un exe) antes de ejecutar el programa. Los intérpretes convierten el código en código de máquina cuando se ejecuta el programa.
DIFERENCIA CLAVE
- El compilador transforma el código escrito en un lenguaje de programación de alto nivel en código de máquina, de una vez, antes de que se ejecute el programa, mientras que un intérprete convierte cada declaración de programa de alto nivel, una por una, en el código de máquina, durante la ejecución del programa.
- El código compilado se ejecuta más rápido mientras que el código interpretado se ejecuta más lento.
- El compilador muestra todos los errores después de la compilación, por otro lado, el intérprete muestra los errores de cada línea uno por uno.
- El compilador se basa en el modelo de carga de enlaces de traducción, mientras que el intérprete se basa en el método de interpretación.
- El compilador toma un programa completo mientras que el intérprete toma una sola línea de código.
Diferencia entre compilador e intérprete
Base de la diferencia | Compilador | Interprete |
---|---|---|
Pasos de programación |
|
|
Ventaja | El código del programa ya está traducido al código de máquina. Por lo tanto, el tiempo de ejecución del código es menor. | Los intérpretes son más fáciles de usar, especialmente para los principiantes. |
Desventaja | No puede cambiar el programa sin volver al código fuente. | Los programas interpretados pueden ejecutarse en equipos que tengan el intérprete correspondiente. |
Codigo de maquina | Almacene el lenguaje de máquina como código de máquina en el disco | No guardar código de máquina en absoluto. |
Tiempo de ejecución | El código compilado se ejecuta más rápido | El código interpretado se ejecuta más lento |
Modelo | Se basa en el modelo de carga de enlaces de traducción de idiomas. | Se basa en el método de interpretación. |
Generación de programas | Genera un programa de salida (en forma de exe) que se puede ejecutar independientemente del programa original. | No genere programa de salida. De modo que evalúan el programa fuente en todo momento durante la ejecución. |
Ejecución | La ejecución del programa es independiente de la compilación. Se realizó solo después de compilar todo el programa de salida. | La ejecución del programa es parte del proceso de interpretación, por lo que se realiza línea por línea. |
Requisito de memoria | El programa de destino se ejecuta de forma independiente y no requiere el compilador en la memoria. | El intérprete existe en la memoria durante la interpretación. |
Más adecuado para | Limitado a la máquina de destino específica y no se puede portar. C y C ++ son los lenguajes de programación más populares que utilizan el modelo de compilación. | Para entornos web, donde los tiempos de carga son importantes. Debido a que se realiza todo el análisis exhaustivo, las compilaciones toman un tiempo relativamente mayor para compilar incluso el código pequeño que puede no ejecutarse varias veces. En tales casos, los intérpretes son mejores. |
Optimización de código | El compilador ve el código completo por adelantado. Por lo tanto, realizan muchas optimizaciones que hacen que el código se ejecute más rápido. | Los intérpretes ven el código línea por línea y, por lo tanto, las optimizaciones no son tan sólidas como los compiladores. |
Escritura dinámica | Difícil de implementar ya que los compiladores no pueden predecir lo que sucede en el momento del turno. | Los idiomas interpretados son compatibles con la escritura dinámica |
Uso | Es el más adecuado para el entorno de producción. | Es el más adecuado para el programa y el entorno de desarrollo. |
Ejecución de error | El compilador muestra todos los errores y advertencias en el momento de la compilación. Por lo tanto, no puede ejecutar el programa sin corregir errores. | El intérprete lee una sola declaración y muestra el error, si lo hay. Debe corregir el error para interpretar la siguiente línea. |
Aporte | Se necesita un programa completo | Se necesita una sola línea de código. |
Producción | Los cumplidores generan un código machnie intermedio. | El intérprete nunca genera ningún código machnie intermedio. |
Errores | Muestra todos los errores posteriores a la compilación, todo al mismo tiempo. | Muestra todos los errores de cada línea uno por uno. |
Lenguajes de programación pertinentes | C, C ++, C #, Scala, Java todos usan complier. | PHP, Perl, Ruby usa un intérprete. |
Rol del compilador
- Los cumplidores leen el código fuente, generan el código ejecutable
- Traduce software escrito en un lenguaje de nivel superior en instrucciones que la computadora puede entender. Convierte el texto que escribe un programador a un formato que la CPU puede entender.
- El proceso de compilación es relativamente complicado. Dedica mucho tiempo a analizar y procesar el programa.
- El resultado ejecutable es alguna forma de código binario específico de la máquina.
Papel del intérprete
- El intérprete convierte el código fuente línea por línea durante el tiempo de ejecución.
- Interpret traduce completamente un programa escrito en un lenguaje de alto nivel a un lenguaje de nivel de máquina.
- El intérprete permite la evaluación y modificación del programa durante su ejecución.
- Relativamente menos tiempo dedicado a analizar y procesar el programa.
- La ejecución del programa es relativamente lenta en comparación con el compilador
IDIOMAS DE ALTO NIVEL
Los lenguajes de alto nivel, como C, C ++, JAVA, etc., están muy cerca del inglés. Facilita el proceso de programación. Sin embargo, debe traducirse al lenguaje de máquina antes de su ejecución. Este proceso de traducción lo realiza un compilador o un intérprete. También conocido como código fuente.
CODIGO DE MAQUINA
Los lenguajes de máquina están muy cerca del hardware. Cada computadora tiene su lenguaje de máquina. Los programas en lenguaje de máquina se componen de series de patrones binarios. (Ej. 110110) Representa las operaciones simples que debe realizar la computadora. Los programas en lenguaje máquina son ejecutables para que puedan ejecutarse directamente.
CÓDIGO DE OBJETO
En la compilación del código fuente, el código de máquina generado para diferentes procesadores como Intel, AMD, un ARM es diferente. tPara hacer que el código sea portátil, primero se convierte el código fuente en Código Objeto. Es un código intermedio (similar al código de máquina) que ningún procesador entenderá. En tiempo de ejecución, el código objeto se convierte al código máquina de la plataforma subyacente.
Java está compilado e interpretado.
Para aprovechar las ventajas relativas de los compiladores, los intérpretes, algunos lenguajes de programación como Java se compilan e interpretan. El código Java en sí mismo se compila en Código de objeto. En tiempo de ejecución, la JVM interpreta el código del objeto en código de máquina del equipo de destino.