Un compilador permite la traducción de un código fuente de un programa en un lenguaje de alto nivel a uno de un lenguaje inferior (lenguaje de máquina) para su interpretación.
Te puede interesar: LENGUAJES DE PROGRAMACION | Tipos, caracteristicas y aplicación
INDICE
Qué es y para qué sirve un compilador?
Un compilador es un programa informático que se encarga de traducir un programa que se ha escrito en un lenguaje de programación para ser comprensible en otro lenguaje de interpretación, para así generar un programa equivalente que una máquina sí va a poder interpretar.
Se hace énfasis en que este segundo lenguaje que pasa por el compilador casi siempre es lenguaje de máquina, aunque también lo puede ser de código intermedio o texto directamente. El compreso de traducción es el que se conoce como compilación.
Un compilador sirve para que al desarrollar un programa el proceso se realice con un lenguaje muy similar al pensamiento de un humano, pero que al ser compilado pasa a ser un lenguaje más comprensible para una computador.
Cómo funciona un compilador?
El procedimiento con el que se traduce de un lenguaje de programación de alto nivel a lenguaje de máquina pasa por varias fases o etapas en donde se aplican operaciones lógicas. Se puede pensar en estas fases de cómo funciona un compilador como piezas separadas del traductor, pero que se integran en conjunto.
Fase de análisis de un compilador
Es la primera fase del funcionamiento de un compilador que por sus características se pueden identificar tres grandes procedimientos:
- Análisis léxico – Momento en el que se lee el programa fuente desde la izquierda a la derecha para ser agrupado en componentes léxicos, conformando secuencias de caracteres con un significado. Así mismo información innecesaria como espacios en blanco o líneas en blanco se eliminan del código fuente. Se comprueban los símbolos del lenguaje.
- Análisis sintáctico – Se agrupan los componentes léxicos o caracteres de forma jerárquica en frases gramaticales que el compilador va a usar para la sintetización de una salida. Igualmente se comprueba si lo que se obtuvo del paso anterior es correcto sintácticamente.
- Análisis semántico – Es un procedimiento en donde se revisa el programa fuente para identificar posibles errores semánticos y además reunir información sobre los tipos usados para la fase posteriores a la generación del código. Se usa una estructura en jerarquía que se determina por la fase de análisis sintáctico para la identificación de operadores y operandos de proposiciones y expresiones.
Fase de síntesis de un compilador
Es la segunda fase de un compilador en donde se genera el código objeto que actúa como equivalente del programa fuente. Sólo ocurre si está libre de errores de análisis.
Generación de código intermedio
En algunos casos los compiladores van a generar una representación intermedia explícita del código fuente. Sus propiedades más relevantes son: fácil de producir y fácil de traducir el programa en un objeto. En ciertas ocasiones se presente el código de tres direcciones que es una especie de lenguaje ensamblador de máquina en donde cada posición de memoria podría actuar como un registro. Sus propiedades son:
- Primera – Cada instrucciones va a tener a lo sumo un operador, sin dejar de incluir la asignación, así que en cuentan se generan las instrucciones, el traductor debe decidir el orden en que se efectúan.
- Segunda – El traductor genera un nombre temporal para almacenar los valores calculados por instrucción.
- Tercera – Algunas instrucciones de las tres direcciones van a tener menos de tres operados, como por ejemplo la asignación.
Fase de optimización de código
Es una fase del compilador en donde se mejora el código intermedio del paso anterior, para que así sea un código de máquina de mucha más fácil interpretación. Es posible más que nada si el traductor es un compilador.
Hay mucha variación en el modo en que se optimiza un código según sean los distintos compiladores. En ciertos casos hay algunos que se denominan compiladores optimizadores porque buena parte del tiempo se enfocan en este procedimiento, pero no siempre es necesario que sea así.
Qué es un compilador optimizador?
Es un compilador que ha sido desarrollado para minimizar determinados atributos de un programa informático para que así se aumente su rendimiento y eficiencia. Estas optimizaciones de un compilador son aplicadas en la mayoría de los casos a través de una transformación de la optimización, algoritmos para producir lo mismo con otra salida semántica equivalente, pero optimizada.
Qué optimiza un compilador optimizador?
Son varios aspectos en los que se enfoca en compilador con estas características, pero al respecto se pueden destacar:
- Optimización temporal – Reducción del tiempo de ejecución de un programa.
- Optimización espacial – Reducir la cantidad de espacio en memoria que va a ocupar un programa en ejecución.
- Tamaño – El tamaño del programa se reduce para que ocupe lo menos posible.
- Potencia – Se trabaja para minimizar la potencia que consume un programa, más que nada para los computadores portátiles.
Puedes seguir leyendo:
SOFTWARE | Que es, tipos de Software, 15 ejemplos y caracteristicas
SOFTWARE DE APLICACIÓN | Que es, ejemplos y caracteristicas
PYTHON (informática) | Qué es, para qué sirve y caracteristicas