Professional Documents
Culture Documents
Tabla(s) de smbolos
Va conteniendo un registro por cada identicador denido/declarado por el programador, aadindose informacin asociada: Ristra del identicador (maysculas y minsculas?) Categora: variable, constante, tipo, campo, procedimiento, funcin, parmetro, clase, etiqueta, mdulo, macro, etc. A qu mbito pertenece (profundidad) Otra informacin segn categora: tamao; ubicacin; valor; enlaces a tipo, parmetros o campos; si incompletamente denido; etc.
An alisis sem atico v1.2 c 2005 Jos e Fortes p.4
s ? ? c main
s ? ? c main real
s ? ? c main real x c
s ? ? c main real
s ? ? c main
s c d c main
Deniciones de tipos
Tambin llamadas expresiones de tipos, en las que el programador desarrolla los componentes de la estructura. Cuestiones: Puede ser conveniente construir un rbol/grafo: En caso de equivalencia estructural Para comprobacin de no-ciclicidad: type a=b; b=a; (Descomponer en) tipos annimos Las deniciones incompletas (declaraciones) son necesarias para deniciones recursivas: entrada en tabla provisionalmente vaca para tipo base.
An alisis sem atico v1.2 c 2005 Jos e Fortes p.9
if(a<3) {b=2*a;};
if-then
<
:=
a 3
2 a
An alisis sem atico v1.2 c 2005 Jos e Fortes p.10
Cudruplas
Operaciones con hasta tres direcciones, que pueden ser variables del programa o temporales: x := y op z x := op z x := z x := y [z ] x[y ] := z if x op y goto L goto L param x1 , ..., param xn , call p(n) Podemos entenderlas como una linealizacin de un cierto tipo de rbol abstracto.
An alisis sem atico v1.2 c 2005 Jos e Fortes p.14
Ejemplo de cudruplas
... := := if >goto L4: ... if = goto := + goto L5: ... i a t8 b i t8 L5 i t8 L5 i i 1 L4