Zusammenfassung der Ressource
COMPILADORES
- INTRODUCCION
- QUE ES UN COMPILADOR
- Un compilador es un programa informático que traduce un programa que ha sido escrito en un
lenguaje de programación a lenguaje maquina
- PROCESO DE COMPILACION
- ANALISIS LEXICO
- QUE ES EL ANALIS LEXICO
- Es la primera fase de un compilador consistente en un programa que recibe como entrada el código
fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de tokens
(componentes léxicos) o símbolos. Estos tokens sirven para una posterior etapa del proceso de
traducción, siendo la entrada para el analizador sintáctico (en inglés parser)
- ANALISIS SEMANTICO
- ESTE ANALISIS SE REALIZA DESPUES DEL ANALISIS LEXICO Y ES MAS COMPLICADO QUE EL ANTERIOR
- CODIGO INTERMEDIO
- PUEDE SER REPRESENTADO DEPENDIENDO DEL NIVEL DEL LENGUAJE MAQUINA SE DEVIDE EN
- NIVEL ALTO
- Alto nivel de representación de código intermedio está muy cerca de la lengua de origen. Pueden ser
fácilmente generados desde el código fuente y podemos aplicar fácilmente modificaciones de código
para mejorar el rendimiento. Pero para optimización de la máquina destino, es menos preferido
- NIVEL BAJO
- Este es cerca de la máquina de destino, lo que lo hace adecuado para registro y asignación de
memoria, un conjunto de instrucciones selección, etc. es bueno para optimizaciones dependientes
de la máquina.
- EJEMPLO
- LA EXPRECION a = b + c * d; SE CONVIERTE EN
- r1=c * d
- r2=b + r1
- r3= r2 + r1
- a= r3
- GENERACION DE CODIGO
- Generación de código puede ser considerado como la fase final de la compilación. Mediante la
generación de código, proceso de optimización se puede aplicar en el código, pero que puede ser visto
como parte de generación de código propia fase. El código generado por el compilador es un código de
objeto de algunos de menor nivel lenguaje de programación
- CONDICIONES
- Debe llevar el significado
exacto del código fuente.
- Debe ser eficiente en términos de uso de la
CPU y la administración de la memoria.
- EJEMPLO
- t0 = a + b
- t1 = t0 + c
- d = t0 + t1