Ejemplo Práctico de un compilador pequeño Lenguaje Fuente Análisis Léxico Análisis Sintáctico Generador de código objeto Lenguaje Objeto
Gramática ASG VAR = EXP ; EXP TER REX REX + EXP | - EXP | VACIO TER ( EXP ) | VAR | CTE VAR A |... | Z CTE 0 |... | 9
Lenguaje Maquina Objeto: PUSHC CTEtop := top + 1; pila[top] := cte; PUSHA dir.var.top := top + 1; pila[top] := dir.var. LOADpila[top] := mem[pila[top]] STOREmem[pila[top-1]] := pila[top]; top := top-2; NEGpila[top] := - pila[top]; ADDpila[top-1] := pila[top] + pila[top-1]; top := top-1; Pila Variables Programa