COMPILADORES
Para traducir las instrucciones de un programa escrito en un lenguaje de alto nivel a instrucciones de un lenguaje máquina, hay que utilizar un programa llamado compilador. Así pues, el compilador es un programa que recibe como datos de entrada el código fuente de un programa escrito por un programador, y genera como salida un conjunto de instrucciones escritas en el lenguaje binario de la computadora donde se van a ejecutar. EJEMPLO
Las fases de un compilador son:
Análisis Léxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un análisis símbolo por símbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este análisis no logra detectar muchos errores por su característica.
Ejemplo:
total=valor*5
Luego del análisis léxico:
id = id * num
Análisis Sintáctico: En esta fase se analiza la estructura de las expresiones en base a gramáticas. Aquí ya se puede determinar si una estructura por ejemplo una expresión matemática mal formada. El análisis que se realiza es jerárquico es decir en base a árboles de derivación que se obtienen de las mismas gramáticas. Ejemplo: position:=initial + rate*60 |
Análisis Semántico: Este análisis es más difícil de formalizar, determina el tipo de los resultados intermedios, comprobar que los argumentos que tienen un operador pertenecen al conjunto de operadores posible, y si son compatibles entre sí.
Generación de Código Intermedio: El código intermedio es una representación en base a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de optimización de código.
a=b+c
1: + b c T1
2: = a T1
Optimización de Código: Consiste en realizar una mejora en el código intermedio, para reducir el número de líneas y hacer que la ejecución sea más rápida
a=b+c
1: + b c a
Generación de Código: Llegamos a la generación de código ensamblador o código máquina del procesador que nos interese por ejemplo:
a:=b+c
LOAD B
ADD C
STORE A
CARACTERÍSTICAS
Para cada lenguaje de programación se requiere un compilador separado.
- El compilador traduce todo el programa antes de ejecutarlo.
- Los programas compilados se ejecutan más rápido que los interpretados, debido a que han sido completamente traducidos a lenguaje máquina.
- Informa al usuario de la presencia de errores en el programa fuente.
- Poseen un editor integrado con un sistema de coloreado para los comandos, funciones, variables y demás partes de un programa
Herramientas tradicionales
- Lex/Yacc
- Pclex
- Pcyacc
- Bison
- Flex
referencias
http://www.carlospes.com/minidiccionario/compilador.php
https://www.ecured.cu/Compilador
https://faustol.wordpress.com/2007/04/10/fases-de-un-compilador/
https://faustol.wordpress.com/2007/04/10/fases-de-un-compilador/
Comentarios
Publicar un comentario