ALEGSA.com.ar

Definición de Compilador

Significado de Compilador: (compiler). Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de ...
09-07-2023

 


Definición de Compilador

 

(compiler). Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto).

Básicamente, existen dos grandes formas de ejecutar programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intérprete para ejecutarse en tiempo real).


Características de un compilador



Generalmente un compilador se divide en dos partes:

* Front End: parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele ser independiente de la plataforma o sistema operativo para el que funcionará.

* Back End: parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end.

Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker).

Existen varios tipos de compiladores: Compiladores cruzados, Compiladores optimizadores, Compiladores de una sola pasada, Compiladores de varias pasadas, Compiladores JIT (Just In Time).


Intérpretes vs compiladores



Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.

También puede darse que un programa contenga partes que son implementadas vía intérprete y otras vía compilador.

También existen intérpretes que incluyen cierta "compilación" en el medio. Son aquellos que compilan a un código intermedio llamado bytecode, que es más eficiente de ejecutar que hacerlo directamente desde el código fuente.

En general, la principal desventaja de los intérpretes, es que cuando un programa es interpretado, suele ejecutarse más lento que si el mismo programa estuviese compilado. Esto se debe a que el intérprete debe analizar cada sentencia en el programa en cada ejecución (un análisis en tiempo real). También el acceso a variables es más lento en un intérprete, porque mapear los identificadores para almacenar las localizaciones debe hacerse repetidas veces en tiempo real.

Algunas de las ventajas de los compiladores es que una vez que se ha compilado el programa, no es necesario volver a compilarlo a menos que se realicen cambios en el código fuente. Esto significa que el programa compilado puede ejecutarse rápidamente sin necesidad de pasar por el proceso de compilación nuevamente. Además, el código objeto generado por el compilador es específico para la plataforma en la que se compila, lo que permite una mayor eficiencia y rendimiento.

Por otro lado, los intérpretes ofrecen la ventaja de poder ejecutar programas en tiempo real, ya que no es necesario compilar previamente el código fuente. Esto es útil cuando se realizan cambios frecuentes en el programa o cuando se necesita una respuesta inmediata. Los intérpretes también suelen ser más flexibles, ya que permiten interactuar directamente con el código fuente durante la ejecución.

Es importante destacar que en algunos casos, ciertos lenguajes de programación pueden ser interpretados o compilados dependiendo de la elección del programador. Esta decisión puede estar influenciada por factores como el rendimiento, la portabilidad del código y los recursos disponibles.

En resumen, tanto los compiladores como los intérpretes son herramientas fundamentales en el desarrollo de software. Cada uno tiene sus propias ventajas y desventajas, y la elección entre ellos dependerá de las necesidades específicas del proyecto y las preferencias del programador.


Resumen: Compilador



Los compiladores son programas que traducen código escrito en lenguaje de alto nivel a un lenguaje comprensible por las computadoras. Existen compiladores para distintas plataformas y tipos de programas. Difieren de los intérpretes en que los programas compilados se ejecutan más rápido pero requieren un proceso de compilación previo.




¿Cuál es el propósito de un compilador?



El propósito de un compilador es traducir el código fuente escrito en un lenguaje de programación de alto nivel a un lenguaje comprensible por la computadora, conocido como código objeto. Esto permite que los programas escritos en lenguajes de programación de alto nivel sean ejecutados por la computadora.


¿Cuál es la diferencia entre un compilador y un intérprete?



La principal diferencia entre un compilador y un intérprete radica en la forma en que procesan el código fuente. Un compilador traduce el código completo a código objeto antes de la ejecución, mientras que un intérprete lo traduce y ejecuta línea por línea. Como resultado, los programas compilados tienden a ser más rápidos, pero los programas interpretados son más flexibles y permiten una depuración más fácil.


¿Qué lenguajes de programación pueden ser compilados?



La mayoría de los lenguajes de programación de alto nivel pueden ser compilados, incluyendo C, C++++, Java, Python y muchos otros. Sin embargo, existen lenguajes de programación que se basan en la interpretación, como JavaScript y Ruby, en los que el código fuente se ejecuta directamente sin necesidad de ser compilado previamente.


¿Qué es un compilador optimizador?



Un compilador optimizador es aquel que realiza optimizaciones en el código fuente durante el proceso de compilación. Estas optimizaciones buscan mejorar la eficiencia y rendimiento del programa resultante, eliminando redundancias, simplificando expresiones matemáticas y reordenando instrucciones para lograr una ejecución más rápida.


¿Qué es un compilador de tiempo de ejecución?



Un compilador de tiempo de ejecución es aquel que traduce el código fuente a medida que el programa se está ejecutando. A diferencia de un compilador estándar, que traduce todo el código antes de la ejecución, un compilador de tiempo de ejecución permite la compilación just-in-time (JIT), lo que brinda la posibilidad de realizar optimizaciones en tiempo real y adaptar el código a las condiciones de ejecución.


¿Existen compiladores para otros tipos de archivos además de programas de computadora?



Sí, existen compiladores que no solo se utilizan para programas de computadora, sino también para otros tipos de archivos. Por ejemplo, en el ámbito de los sistemas embebidos, se utilizan compiladores para traducir archivos de configuración o de descripción de hardware a un formato específico que pueda ser utilizado por el sistema. También existen compiladores para lenguajes específicos, como los compiladores de consulta utilizados en bases de datos.




Relacionado:
Proceso de compilación.
Descompilador.
Intérprete.


Autor: Leandro Alegsa
Actualizado: 09-07-2023

¿Cómo citar este artículo?

Alegsa, Leandro. (2023). Definición de Compilador. Recuperado de https://www.alegsa.com.ar/Dic/compilador.php

Diccionario informático



 


articulos
Asistente IA
Escribe tu consulta sobre informática y tecnologías al asistente de Inteligencia Artificial
¡te responderá en segundos!




* ACLARACIÓN: el asistente ha sido entrenado para responder tus dudas con muy buenos resultados, pero puede equivocarse, esta tecnología aún está en desarrollo. Te sugiero dejar tu email para que te contactemos para corregir la respuesta de la IA: leemos todas las consultas y respuestas.


Comentarios relacionados

  • La diferencia más destacable entre un compilador y un intérprete es cómo procesan y ejecutan el código fuente

    La diferencia más destacable entre un compilador y un intérprete está en cómo procesan y ejecutan el código fuente.

    Un compilador es un programa que traduce todo el código fuente de un programa en un lenguaje de programación a un código objeto, que generalmente es en lenguaje de máquina o bytecode. Este proceso se conoce como compilación. El resultado final es un archivo ejecutable que puede ser ejecutado directamente por el sistema operativo.

    Por otro lado, un intérprete es un programa que lee línea por línea el código fuente y lo ejecuta directamente, sin necesidad de generar un archivo ejecutable previo. El intérprete traduce e interpreta cada instrucción a medida que se va encontrando en tiempo real.

    En resumen, la principal diferencia radica en que el compilador genera un archivo ejecutable a partir del código fuente, mientras que el intérprete ejecuta directamente el código fuente sin necesidad de generar un archivo ejecutable.
Usa nuestro buscador para definiciones, informática y tecnologías