Está en la página 1de 3

Insertar Portada

La importancia del compilador en lenguajes de alto nivel

¿Qué es un compilador?
Un compilador es un software informático que traduce un programa escrito en
un lenguaje de programación traduce un programa escrito en un lenguaje de
programación de elevado grado (C / C ++, COBOL, PASCAL etcétera.) a otro
lenguaje de programación, generando una equivalencia que la maquina va a
ser capaz de interpretar. El compilador principalmente produce lenguaje
ensamblador primero y después traduce el lenguaje ensamblador al lenguaje e
pc.
La compilación está dividida en 2 piezas: estudio y síntesis.
La primera divide al programa fuente en sus recursos elementos que son:
analizador léxico, sintáctico y semántico.
La segunda construye el programa objeto esperado desde la representación
intermedia por: optimizador de código y generador de código.
Importancia en lenguajes de alto nivel
La funcionalidad primordial que cumple un compilador es traducir a un
lenguaje muchísimo más sencillo y entendible por la máquina, informa al
cliente si hay errores en el código fuente con el objeto de llevar a cabo la
aplicación sin problema, si existe cualquier error sencillamente se detiene.
Como la primordial trascendencia se tiene que, sin dichos programas
compiladores no existiría las aplicaciones informáticas, debido a que son la
base de la programación en cualquier plataforma informática
El compilador cuenta con fases algorítmicas que en primer lugar buscan la
exactitud de la traducción para que se mantenga la semántica del programa a
traducir seguido a esto está la velocidad del código generado, tamaño de
código, velocidad del compilador y al final el soporte a la depuración el
principal factor a optimiza es la velocidad del código generado para el
correcto funcionamiento del programa traducido.
De forma que la optimización de los programas compilados se jerarquiza de la
siguiente forma
Optimizaciones de elevado grado: llevadas a cabo en el código fuente
Incorporación de métodos: reemplaza la llamada a un método por el cuerpo
humano de éste (expansión de macros).
Optimizaciones locales: están afectando a fragmentos de código lineal (sin
bifurcaciones)
Supresión de subexpresiones habituales
Propagación de constantes
Reducción del tamaño de la pila en la evaluación de expresiones
reorganizando su composición
Optimizaciones globales: están afectando al programa completo, son más
complicadas de llevar a cabo.
Mejora de bucles
Supresión de subexpresiones habituales de alcance universal (incluyendo
saltos)
Propagación de copias: reemplaza cada una de las instancias de una variable
asignada.
Mejora del uso de registros: es una de las que reporta más grande aumento de
rendimiento. La estudiaremos con más detalle posteriormente.
Optimizaciones dependientes de la máquina: Aprovechan el razonamiento de
las arquitecturas concretas.
Fases del compilador
Analizador léxico:
Es un estudio a grado de letras y números, su tarea es reconocer los elementos
léxicos o token, enviando al analizador sintáctico los tokens y sus atributos.
Analizador sintáctico:
Es un estudio jerárquico. Involucra agrupar los elementos léxicos del
programa fuente en frases gramaticales que el compilador usa para sintetizar
la salida. Estas frases gramaticales se representan por medio de un árbol.
Analizador semántico:
Examina el programa fuente para intentar de descubrir errores semánticos. Un
elemento fundamental del estudio semántico es la verificación de tipos.
Generación del código intermedio:
Desde el estudio sintáctico y semántico, ciertos compiladores producen una
representación intermedia explicita del programa fuente. Esta puede tener
distintas maneras: código de 3 direcciones, que es una serie de normas, todas
las cuales tiene mayor 3 operandos.
Optimizador de Código:
Trata de mejorar el código intermedio, por lo cual resulte un código de
maquina más veloz de realizar.
Generación de Código:
Esta es la etapa final de un compilador, que generalmente se apoya en código
de maquina fácil de relocalizar código ensamblador.
Debido a todo lo mencionado anteriormente el compilador es primordial en
los lenguajes de alto nivel para el correcto desarrollo y optimización de
programas, ya que esto son la base de la programación en múltiples
plataformas tecnológicas.

También podría gustarte