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.