Categorie: Tutti - compilador - semántico - frontend

da Hernan Martínez mancano 5 anni

750

Compilador

Un compilador es un programa que traduce código fuente a código máquina. Se divide en dos partes principales: el FrontEnd y el BackEnd. El FrontEnd interactúa con el usuario, analiza el código, verifica su validez y genera estructuras internas como el árbol de derivación y la tabla de símbolos.

Compilador

Compilador

Estructura del proceso de compilacion

Fase Sintesis
Optimizacion de codigo

En esta fase se trata de mejorar el código intermedio, de modo que resulte un código de máquina más rápido de ejecutar.

Generacion de codigo

Esta constituye la fase final de un compilador. En ella se genera el código objeto que por lo general consiste en código en lenguaje máquina (código relocalizable) o código en lenguaje ensamblador.

Generacion de codigo intermedio

En esta etapa se lleva el código del programa fuente a un código interno para poder trabajar mas fácilmente sobre él.

Fase Analisis
Semántico

El analizador semántico detecta la validez semántica de las sentencias aceptadas por el analizador sintáctico.

Sintactico

Se encarga de revisar que los tokens estén ubicados y agrupados de acuerdo a la definición del lenguaje.

Lexico

Su función es tomar el programa fuente en forma de tokens, que recibe del analizador léxico y determinar la estructura de las sentencias del programa.

Estructura de un compilador

Enlazado
Este ultimo modulo es el que produce como salida el código binario enlazado.
Ensamblado
Este modulo recibe un código fuente de entrada escrito en ensamblador, y produce otro código de salida, llamado código binario no enlazado.
Compilacion
En esta etapa se somete al código fuente puro de entrada a un análisis léxico gráfico, a un análisis sintáctico, a un análisis semántico, que construyen la tabla de símbolos, se genera un código intermedio al cual se optimiza para así poder producir un código de salida generalmente en algún lenguaje ensamblador
Preprocesador
Es el encargado de transformar el código fuente de entrada original en el código fuente puro.

Tipos de compiladores

Descompilador
Es un programa que acepta como entrada código maquina y la traduce a un lenguaje de alto nivel realizando el proceso inverso a la compilación.
Meta compilador
Es programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje.
Auto compilador
Compilador que está escrito en el mismo lenguaje que va a compilar.
Compilador con montador
Compila distintos módulos de forma independiente y después es capaz de aplazarlos.
Compiladores incrementales
Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual.
Compiladores JIT (Just In Time)
forman parte de un intérprete y compilan partes del código según se necesitan.
Compiladores de varias pasadas
necesitan leer el código fuente varias veces antes de poder producir el código máquina.
Compiladores de una sola pasada
generan el código máquina a partir de una única lectura del código fuente.
Compiladores optimizadores
realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores cruzados
generan código para un sistema distinto del que están funcionando.

Partes de un compilador

El BackEnd
Esta parte del compilador es la encargada de generar el código en formato de máquina, a partir del trabajo hecho por el Front End.
El FrontEnd
Es la parte del compilador que interactúa con el usuario. Se encarga de realizar el análisis del código fuente a compilar y verifica que este sea válido, así como también, genera el árbol de derivación y rellena los valores de la tabla de símbolos.

¿Qué es?

Un compilador es un programa que convierte o traduce el código fuente de un programa hecho en lenguaje de alto nivel, a un lenguaje de bajo nivel.