Beruflich Dokumente
Kultur Dokumente
TRADUCTORES E INTERPRETES II
.- ANLISIS SEMNTICO .- Por qu? - Aspectos que no captura el anlisis lxico-sintctico - Aspectos que no captura una gramtica libre de contexto
char micaracter; //Correcto sintcticamente micaracter = 25; //Incorrecto semnticamente
TRADUCTORES E INTERPRETES II
.- ANLISIS SEMNTICO .- Formas de Expresar la semntica -Semntica operacional: Mquina abstracta -Semntica denotacional: Efecto de la ejecucin -Semntica axiomtica: Asertos -Semntica algebraica: Tipos de datos abstractos -Semntica de acciones: Pseudocdigo -Gramticas con atributos: Atributos, reglas semnticas -Otras
TRADUCTORES E INTERPRETES II
.- GRAMTICAS CON ATRIBUTOS -Atributos: Cualquier propiedad de un elemento del lenguaje - Tipo de una variable - Valor de una expresin - Posicin en memoria - Otros -Reglas semnticas: Expresan cmo el clculo de los atributos est relacionado con las reglas gramaticales del lenguaje - tiles para lenguajes que siguen el principio de semntica dirigida por sintaxis: El contenido semntico se encuentra estrchamente relacionado con la sintaxis
TRADUCTORES E INTERPRETES II
EJEMPLO: GRAMTICA SIMPLE PARA NMEROS SIN SIGNO nmero nmero dgito | dgito dgito 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Atributo: Valor - nmero.val - dgito.val digito 1 ; digito.val = 1 nmero dgito; nmero.val = dgito.val nmero1 nmero2 dgito; nmero1.val = numero2.val * 10 + dgito.val
TRADUCTORES E INTERPRETES II
.- GRAMTICAS CON ATRIBUTOS -Metalenguaje: Conjunto de expresiones permitidas en una regla semntica. - if .. then .. else - funciones externas -Especificar la gramtica con atributos mediante gramticas ambiguas ms sencillas exp exp + term | exp term | term term term * factor | factor factor (exp) | nmero exp exp + exp | exp exp | exp * exp | (exp) | nmero
TRADUCTORES E INTERPRETES II
.- GRAMTICAS CON ATRIBUTOS -rbol sintctico abstracto para exhibir valores de atributo
3 * (4 - 2) rbol Abstracto *
ENTERO ENTERO
TRADUCTORES E INTERPRETES II
.- ALGORITMOS -Anlisis semntico posterior al anlisis sintctico -Mtodo basado en el grafo de dependencias -Mtodo basado en reglas -Ms sencillo -Encontrar un recorrido para el rbol sintctico. -Anlisis semntico y sintctico simultaneos -Anlisis sintctico y semntico en una pasada -Diferentes potencias en funcin del tipo de anlisis sintctico
TRADUCTORES E INTERPRETES II
.- ALGORITMOS X i . a j = f ij X 0 . ai ,... , X 0 . a k , X 1 . ai , ... , X 1 . a k ,... , X n . ai , ... , X n . a k -Buscar un orden de evaluacin que asegure que todos los valores de atributo van a estar disponibles. -Grafos de dependencia
TRADUCTORES E INTERPRETES II
.- ALGORITMOS X i . a j = f ij X 0 . ai ,... , X 0 . a k , X 1 . ai , ... , X 1 . a k ,... , X n . ai , ... , X n . a k -Buscar un orden de evaluacin que asegure que todos los valores de atributo van a estar disponibles. -Grafos de dependencia
TRADUCTORES E INTERPRETES II
.- ALGORITMOS -Grafos de dependencia vs rbol sintctico
Produccin ->E1+E2 Regla Semntica E.val:=E1.val+E2.val
TRADUCTORES E INTERPRETES II
.- ALGORITMOS -Grafos de dependencia vs rbol sintctico float x,y
TRADUCTORES E INTERPRETES II
.- ALGORITMOS -Mtodo del rbol de anlisis gramatical -Grafos de dependencia <--> Limitantes de orden -Recorrido del grafo segn los limitantes -> Clasificacin Topolgica -Condicin necesaria y suficiente -> Grafo acclico (DAG) -Mtodo complejo -> construccin del grafo en tiempo de compilacion -Algoritmo para comprobar que una gramtica de atributos est bien construida --> Orden exponencial
TRADUCTORES E INTERPRETES II
.- ALGORITMOS -Mtodos basado en reglas -Anlisis de la gramtica y fijacin de orden de evaluacin en tiempo de construccin del compilador -Aplicable para gramticas con atributos completamente no circulares -Se basan en un recorrido explcito o implcito del rbol gramtical o del rbol sintctico. -Diferentes recorridos <--> Diferente potencia frente a tipos de atributos
TRADUCTORES E INTERPRETES II
.- ALGORITMOS BASADOS EN REGLAS - Atributos sintetizados -Todas sus dependencias apuntan de hijo a padre en el rbol sintctico a es atributo sintetizado A X 1 X 2 ... X n A.a= f X 1 . a1 , ... , X 1 . a k ,... , X n . a1 ,... , X n . a k
TRADUCTORES E INTERPRETES II
.- ALGORITMOS BASADOS EN REGLAS - Atributos sintetizados -Gramtica S --> Todos los atributos sintetizados -Recorrido ascendente o postorden del arbol gramatical
TRADUCTORES E INTERPRETES II
.- ALGORITMOS BASADOS EN REGLAS -Atributos heredados -Un atributo no sintetizado es heredado -Herencia de padres a hijos -Herencia de hermanos a hermanos
TRADUCTORES E INTERPRETES II
.- ALGORITMOS BASADOS EN REGLAS -Atributos heredados float x,y
TRADUCTORES E INTERPRETES II
.- ALGORITMOS BASADOS EN REGLAS -Atributos heredados -Recorrido preorden, o combinado, preorden/enorden del rbol sintctico procedure PreEval (T:nodo); begin for cada hijo C de T do calcule todos los atributos heredados de C; PreEval(C); end; - El orden de clculo de los atributos heredados de los hijos es importante por las posibles herencias hijo-hijo
TRADUCTORES E INTERPRETES II
.- ALGORITMOS BASADOS EN REGLAS -Atributos heredados y sintetizados -Sintetizados dependen de heredados, heredados no dependen de sintetizados --> Un solo recorrido del rbol -Sintetizados dependen de heredados, heredados dependen de sintetizados --> Situacin ms compleja, ms de un recorrido del rbol sintctico
TRADUCTORES E INTERPRETES II
.- ALGORITMOS SEMNTICO SINTCTICO SIMULTNEO -Histricamente importante emplear pocas pasadas -> recursos limitados -Potencia de clculo depende del mtodo de anlsis sintctico -Los mtodo sintcticos habituales procesan Left to Right -Atributos sintetizados -> no es un problema -Atributos heredados -> no puede haber dependencias hacia atrs (derecha izquierda) en el grafo de dependencias -Gramtica de atributos L -Una gramtica S es una gramtica L
TRADUCTORES E INTERPRETES II
.- ALGORITMOS SEMNTICO SINTCTICO SIMULTNEO -Gramtica L + Atributos heredados no dependientes de sintetizados -Analizador sintctico descendente -A. Heredados --> Parmetros -A. Sintetizados --> Valores devueltos -Analizador sintctico ascendente -Ms problemticos, uso menos directo -Posponen la decisin de la regla a utilizar hasta la formacin completa del lado derecho
TRADUCTORES E INTERPRETES II
.- ALGORITMOS SEMNTICO SINTCTICO SIMULTNEO -Atributos sintetizados vs analizador LR -Pila de valores Pila de anlisis sintctico -Reduccin -> pila de valores -> Clculo de A. sintetizados E -> E1 + E2; E.val = E1.val+E2.val ; $$ = $1 + $2
TRADUCTORES E INTERPRETES II
.- ALGORITMOS SEMNTICO SINTCTICO SIMULTNEO -Herencia de un atributo sintetizado previamente vs LR
<S> <A> <B> <A> a <B> b B.e = f(A.s) A.s = a.s B.s = g(B.e)
-El atributo heredado no puede pasarse a la ltima produccin para que pueda calcularse B.e
<S> <A> <B> <C> <A> <C> <B> a A.s = a.s b B.s = g(topepila-1.e) C.e = f(topepila.s)