M - PowerPoint PPT Presentation

About This Presentation
Title:

M

Description:

Memoria independiente para instrucciones y datos. Toda ... Forward 5. Backward 10. Destino simb lico (etiquetas) Jump Ciclo. Instrucciones Control Flujo ... – PowerPoint PPT presentation

Number of Views:120
Avg rating:3.0/5.0
Slides: 16
Provided by: leonelm
Category:
Tags: fwd

less

Transcript and Presenter's Notes

Title: M


1
Máquinas de Pila Abstracta
  • Generación de Código Intermedio

2
Código intermedio
  • Un programa para una máquina abstracta
  • Dos cualidades
  • Fácil de producir
  • Reglas claras de cómo construírla
  • Fácil de traducir al lenguaje objeto

3
Código de 3 direcciones
  • A A8 B/7
  • temp1 A8
  • temp2 B/7
  • A temp1 temp2
  • Variables temporales

4
Máquinas de Pila
  • Memoria independiente para instrucciones y datos
  • Toda operación es con valores de la pila
  • Operaciones
  • Aritmética entera
  • Manipulación de pila
  • Control de flujo

5
Instrucciones aritméticas
  • Una instrucción por cada operador aritmético
  • , -, , /, div, mod, etc.
  • Ojo con - a 8 -gt a 8 -
  • Simula evalución de expresiones postfijas

6
Ejemplo
  • 1, 3 5
  • Push 1
  • Push 3
  • Push (Pop Pop)
  • Push 5
  • Push (Pop Pop)

7
Izquierda o derecha
  • i 5 i i 1
  • Lado derecho valor entero
  • Lado izquierdo dónde almacenar resultado
  • i en lado izquierdo indica dirección

8
Instrucciones
  • Push v inserta v en la pila
  • ValD w inserta valor de posición w
  • ValI w inserta dirección de w
  • Pop Saca valor de la pila
  • Pop y poner en dir. Pop
  • Copy Pop y Push-Push

9
día (14a) div 4 153m
  • En postfijo
  • día 14 a 4 div 153 m
  • En código de pila

ValI día Push 14 ValD a
Push 4 div Push 153 ValD m

10
Control de flujo
  • Opciones
  • Operando da destino
  • Jump 300
  • Operando da posición relativa de destino
  • Forward 5
  • Backward 10
  • Destino simbólico (etiquetas)
  • Jump Ciclo

11
Instrucciones Control Flujo
  • Label z etiqueta la posición
  • Look z va a posición etiqueta z
  • IfFalseLook z
  • Si Pop 0 va a posición etiqueta z
  • IfTrueLook z
  • Si Pop ltgt 0 va a posición etiqueta z
  • Halt detiene ejecución

12
if agt8 then a10
  • ValD a
  • Push 8
  • -
  • IfTrueLook Asigna
  • Look Continúa
  • Label Asigna
  • ValI a
  • Push 10
  • Label Continúa

13
while alt5 do a
  • Label Prueba
  • ValD a
  • Push 5
  • -
  • IfFalseLook Sigue
  • ValI a
  • ValD a
  • Push 1
  • Look Prueba
  • Label Sigue

14
Etiquetas
  • Función NewLabel()
  • Genera nuevas etiquetas
  • Puede incluírse en reglas semánticas
  • TmpLabel NewLabel()
  • Garatiza etiquetas no repetidas
  • Label00001, Label00002, ..., Label03428, ...

15
Reglas Semánticas
  • Prop -gt if Expr then Prop
  • Label1 NewLabel()
  • Prop.t Expr.t NL IfFalseLook Label1
    NL Prop.t NL Label Label1
Write a Comment
User Comments (0)
About PowerShow.com