La etapa final de la creación de un programa es traducir un algoritmo escrito en uno de los lenguajes de programación (C/C++, Pascal, etc.) a un lenguaje de máquina de bajo nivel. Esto se debe al hecho de que para realizar cualquier tarea, las computadoras necesitan recibir comandos en un lenguaje que entiendan, cercano al binario y que opere con estructuras de datos primitivas (bit, byte o palabra). El proceso de traducir declaraciones específicas de dominio de lenguajes de alto nivel a código binario se llama traducción. Hay dos métodos de traducción: compilación e interpretación.
Compilador: ¿qué es?
El análisis de muchas interpretaciones de los términos "compilador" y "compilación" nos permite res altar la siguiente definición. Un compilador es un programa diseñado para traducir el texto de un algoritmo fuente de un lenguaje de alto nivel a un conjunto equivalente de instrucciones en un lenguaje orientado a máquina. Este es el llamado código objeto, para el montaje posterior del código objeto resultante en un módulo de programa listo para usar.
Compilador e intérprete - similitudes y diferencias
Un intérprete es una utilidad queasí como un compilador, diseñado para traducir código fuente a código máquina. Sin embargo, a diferencia del compilador, el intérprete se ejecuta siempre con el programa y realiza la traducción línea por línea.
Se puede decir que el compilador y el intérprete son procesadores de lenguaje que permiten que la computadora reconozca y ejecute comandos dados por el programador.
Clasificación del compilador
Los compiladores se clasifican principalmente por características relacionadas con sus áreas de aplicación práctica.
El compilador vectorizador es una utilidad que traduce el código fuente en código objeto y está adaptado para computadoras equipadas con procesadores vectoriales.
Un compilador flexible se programa en un lenguaje de alto nivel de forma modular. Su gestión se realiza mediante tablas. También es posible ejecutarlo usando el compilador de compiladores.
El compilador incremental es un procesador de lenguaje que vuelve a traducir fragmentos separados del código fuente y las adiciones al mismo. Sin embargo, evita volver a compilar toda la aplicación.
Un compilador interpretativo (por pasos) es una utilidad que ejecuta secuencialmente una compilación independiente de cada declaración o comando de un código fuente de alto nivel.
Un compilador de compiladores es un traductor capaz de aceptar una descripción formal para un lenguaje de programación y generar de forma independiente un compilador para cualquier lenguaje.
El compilador de depuración le permite encontrar y corregir algunos tipos de errores de sintaxis cometidos al escribir el código fuente
Un compilador residente ocupa un lugar permanente en la RAM y, por lo tanto, es reutilizable para una amplia gama de tareas.
El compilador autocompilado está escrito en el mismo idioma que la traducción.
El compilador universal se basa en una descripción formal de los parámetros semánticos y sintácticos del lenguaje de entrada. Los principales componentes de dicha utilidad son los cargadores central, sintáctico y semántico.
Dispositivo compilador
Un compilador y un enlazador están en el corazón de cualquier compilador. A menudo, al compilar, se usa un enlazador externo y el compilador solo realiza la función de traducción. También sucede que el compilador se implementa como una especie de programa administrador que se asocia con el traductor (o traductores, si se usaron diferentes lenguajes de programación al escribir el código fuente) y el enlazador e inicia su ejecución cuando es necesario.
Lenguajes de programación y métodos de traducción
A pesar de que un programa escrito en cualquier lenguaje de programación puede ser tanto compilado como interpretado, muchos lenguajes de alto nivel tienen predisposición a uno u otro método de traducción. Entonces, el lenguaje C se diseñó originalmente para la compilación y Java, para la interpretación del programa escrito. Están siendo desarrolladosLos compiladores de C son bastante fáciles, gracias a su nivel relativamente bajo y una pequeña cantidad de elementos estructurales.
Ventajas y desventajas de los compiladores e intérpretes. Aplicaciones
Tenga en cuenta que las aplicaciones compiladas son más rápidas que las interpretadas, pero al mismo tiempo, el código de máquina obtenido como resultado de la compilación depende de la plataforma de hardware. Entonces, un programa escrito y compilado para Windows no funcionará, por ejemplo, en Linux. Por lo tanto, en el caso de las aplicaciones de Internet, cuando es imposible decir de antemano en qué entorno funcionarán, utilizan interpretación o bytecode (en este caso, el programa fuente se convierte en una forma intermedia que se puede ejecutar en varios hardware). plataformas).