Lenguajes y Automatas II

Generación de Código Intermedio

Instrucciones de Control

Cuando se generan cuádruplas para las instrucciones de control, puede ocurrir que en el momento en que se genera una cuádrupla de salto no se sepa la cuádrupla a la que hay que saltar, porque ésta no se ha generado todavía.

 

Este problema se soluciona de la siguiente forma: se numeran las cuádruplas y se usa su número para identificarlas, se mantiene una variable global, cl.sig, cuyo valor es el número de la siguiente cuádrupla a generar, y se introducen en una pila los números de las cuádruplas pendientes de completar, es decir, aquellas para las que se desconocía el valor de alguno de sus componentes en el momento en que se generaron.
 

Proceso de generación de cuádruplas para la siguiente instrucción:
if (a < b) then
      a:=2
else
      b:=3;

Made with Slides.com