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

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

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

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