Ejemplo Práctico de un compilador pequeño
3
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
description
Lenguaje Fuente. Análisis Léxico. Análisis Sintáctico. Generador de código objeto. Lenguaje Objeto. Ejemplo Práctico de un compilador pequeño. ASG VAR = EXP ;. EXP TER REX. REX + EXP | - EXP | VACIO. TER ( EXP ) | VAR | CTE. VAR A | ... | Z. - PowerPoint PPT Presentation
Transcript of Ejemplo Práctico de un compilador pequeño
![Page 1: Ejemplo Práctico de un compilador pequeño](https://reader036.fdocuments.co/reader036/viewer/2022082405/5681461f550346895db32701/html5/thumbnails/1.jpg)
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
![Page 2: Ejemplo Práctico de un compilador pequeño](https://reader036.fdocuments.co/reader036/viewer/2022082405/5681461f550346895db32701/html5/thumbnails/2.jpg)
Gramática
ASG VAR = EXP ;
EXP TER REX
REX + EXP | - EXP | VACIO
TER ( EXP ) | VAR | CTE
VAR A | ... | Z
CTE 0 | ... | 9
![Page 3: Ejemplo Práctico de un compilador pequeño](https://reader036.fdocuments.co/reader036/viewer/2022082405/5681461f550346895db32701/html5/thumbnails/3.jpg)
Lenguaje Maquina Objeto:
PUSHC CTE top := top + 1;pila[top] := cte;
PUSHA dir.var. top := top + 1;
pila[top] := dir.var.
LOAD pila[top] := mem[pila[top]]
STORE mem[pila[top-1]] := pila[top];top := top-2;
NEG pila[top] := - pila[top];
ADD pila[top-1] := pila[top] + pila[top-1];top := top-1;
Pila
Variables
Programa