SlideShare une entreprise Scribd logo
1  sur  39
Gramáticas Atribuidas o análisis semántico
Compiladores e Interpretes
Gramáticas Atribuidas o análisis semántico.
 Son las elegidas comúnmente para
representar la sintaxis de los lenguajes de
programación.
 Éstas representan cómo debe ser la
estructura de cualquier programa
perteneciente al lenguaje que describen.
Gramáticas Atribuidas o análisis semántico.
 Sin embargo, un procesador de lenguaje
necesita conocimiento adicional del
significado de las construcciones para
llevar a cabo acciones en función de la fase
en la que se encuentre.
Gramáticas Atribuidas o análisis semántico.
Además de comprobar que un programa
cumple con las reglas de la gramática , hay
que comprobar que lo que se quiere hacer
tiene sentido.
Que hace
Gramáticas Atribuidas o análisis semántico.
El análisis semántico dota de un significado
coherente a lo que hemos hecho en el
análisis sintáctico.
Que hace
Gramáticas Atribuidas o análisis semántico.
El chequeo semántico se encarga de que
los tipos estén correctos, por ejemplo no
podemos multiplicar una cadena de
caracteres por un
entero.
Que hace
Gramáticas Atribuidas o análisis semántico.
Definidas originalmente por Knuth [Knuth68]
como un método para describir la semántica
de un lenguaje de programación.
En si GA es
Gramáticas Atribuidas o análisis semántico.
En si GA es
Gramáticas Atribuidas o análisis semántico.
Gramáticas Atribuidas o análisis semántico.
Gramáticas Atribuidas o análisis semántico.
Gramáticas Atribuidas o análisis semántico.
Una gramática atribuida (GA) es una tripleta GA={G,A,R},
donde:
Gramáticas Atribuidas o análisis semántico.
Existen una serie de reglas de lo que puedo y no
puedo utilizar en las acciones intermedias.
Reglas sobre
atributos:
1.Un atributo solo puede ser usado (en una
acción ) detrás del símbolo al que
pertenece.
2.El atributo del antecedente solo se puede
utilizar en la acción (del final) de su regla.
Ej: A Ú cd N1 B {puedo usar el atributo de
A}N1 Ú J {No puedo usar el atributo de A}
Gramáticas Atribuidas o análisis semántico.
Existen una serie de reglas de lo que puedo y no
puedo utilizar en las acciones intermedias.
Reglas sobre
atributos:
3. En una acción intermedia solo puede
hacer uso de los atributos de los simbolos
que la preceden.
Ej A Ú cd N1 B
En la acción de N1 solo puedo hacer uso de
cd (que es lo que le precede).
Veamos todo esto en más profundidad.
Gramáticas Atribuidas o análisis semántico.
Hay dos notaciones para asociar reglas semánticas con reglas
de producción.
Las definiciones
dirigidas por
sintaxis
Los de esquemas
de traducción.
Gramáticas Atribuidas o análisis semántico.
Son especificaciones de alto nivel para
traducciones. No es necesario que el usuario
especifique explícitamente el orden en el que
tiene lugar la traducción.
Gramáticas Atribuidas o análisis semántico.
Indican el orden en que se deben
evaluar las reglas semánticas.
Gramáticas Atribuidas o análisis semántico.
Conceptualmente, tanto con las definiciones dirigidas
por sintaxis como con los esquemas de traducción, se
analiza sintácticamente la cadena de componentes
léxicos de entrada, se construye el árbol de análisis
sintáctico y después se recorre el árbol para evaluar las
reglas semánticas en sus nodos.
Gramáticas Atribuidas o análisis semántico.
La evaluación de las reglas semánticas puede generar
código, guardar información en una tabla de símbolos,
emitir mensajes de error o realizar otras actividades.
La traducción de la cadena de componentes léxicos es
el resultado obtenido al evaluar las reglas semánticas.
Gramáticas Atribuidas o análisis semántico.
Gramáticas Atribuidas o análisis semántico.
Atributos
Atributos
sintetizados
Son muy utilizados en la práctica. Una
definición dirigida por sintaxis que usa
atributos sintetizados exclusivamente
se denomina definición con atributos
sintetizados.
Gramáticas Atribuidas o análisis semántico.
Atributos
Atributos
sintetizados
Son muy utilizados en la práctica. Una
definición dirigida por sintaxis que usa
atributos sintetizados exclusivamente
se denomina definición con atributos
sintetizados.
La figura 4.3 contiene un árbol de análisis sintáctico con anotaciones para la entrada
3*5+4n. El resultado, que se imprime en la raíz del árbol, es el valor de E.val en el
primer hijo de la raíz.
Gramáticas Atribuidas o análisis semántico.
La figura 4.3 contiene un árbol de análisis sintáctico con anotaciones para la entrada
3*5+4n. El resultado, que se imprime en la raíz del árbol, es el valor de E.val en el
primer hijo de la raíz.
Gramáticas Atribuidas o análisis semántico.
Gramáticas Atribuidas o análisis semántico.
Atributos
heredados
Es uno cuyo valor en un nodo de un árbol de
análisis sintáctico está definido a partir de los
atributos en el padre y/o de los hermanos de dicho
nodo. Los atributos heredados sirven para
expresar la dependencia de una construcción de
un lenguaje de programación en el contexto en el
que aparece.
Atributos
Gramáticas Atribuidas o análisis semántico.
Por ejemplo
de Atributos
heredados
Se puede utilizar un atributo heredado para
comprobar si un identificador aparece en el lado
izquierdo o en el derecho de una asignación para
decidir si se necesita la dirección o el valor del
identificador. Aunque siempre es posible reescribir
una definición dirigida por sintaxis para que sólo
se utilicen atributos sintetizados, a veces es más
natural utilizar definiciones dirigidas por la sintaxis
con atributos heredados.
Atributos
Gramáticas Atribuidas o análisis semántico.
Grafo de
dependencias
Si un atributo b en un nodo de un árbol de
análisis sintáctico depende de un atributo c,
entonces se debe evaluar la regla
semántica para b en ese nodo después de
la regla semántica que define a c.
Atributos
Gramáticas Atribuidas o análisis semántico.
Grafo de
dependencias
Las interdependencias entre los atributos
heredados y sintetizados en los nodos de
un árbol de análisis sintáctico se pueden
representar mediante un grafo dirigido
llamado GRAFO DE DEPENDENCIAS.
Atributos
Más detalladamente, el grafo de dependencias para un determinado árbol de
análisis sintáctico se construye de la siguiente manera:
Gramáticas Atribuidas o análisis semántico.
Gramáticas Atribuidas o análisis semántico.
Orden de
evaluación
Todo ordenamiento topológico de un grafo
de dependencias da un orden válido en el
que se pueden evaluar las reglas
semánticas asociadas con los nodos de un
árbol de análisis sintáctico.
Atributos
Gramáticas Atribuidas o análisis semántico.
Gramática L-
atribuida
Atributos
Gramáticas Atribuidas o análisis semántico.
Gramática S-
atribuida
Es una gramática atribuida que sólo
contiene atributos sintetizados Una
gramática Satribuida es también L-
atribuida.
Atributos
Gramáticas Atribuidas o análisis semántico.
Gramática S-
atribuida
Los atributos sintetizados se pueden evaluar con un
analizador sintáctico ascendente conforme la entrada es
analizada. El analizador sintáctico puede conservar en su
pila los valores de los atributos sintetizados asociados con
los símbolos gramaticales. Siempre que se haga una
reducción se calculan los valores de los nuevos atributos
sintetizados a partir de los atributos que aparecen en la
pila para los símbolos gramaticales del lado derecho de la
producción con la que se reduce.
Atributos
Gramáticas Atribuidas o análisis semántico.
Es una gramática de contexto libre en la que se encuentran
intercalados, en el lado derecho de la regla de producción,
fragmentos de programas a los que hemos llamado acciones
semánticas. Un esquema de traducción es como una
definición dirigida por sintaxis, con la excepción de que el
orden de evaluación de las reglas semánticas se muestra
explícitamente.
Gramáticas Atribuidas o análisis semántico.
En este epígrafe se estudiará cómo funciona el análisis LALR(1) con
atributos.
Recordemos que el LALR(1) es capaz de saber en todo momento qué
regla aplicar sin
margen de error (ante una gramática que cumpla las restricciones
LALR(1)). Este
hecho es el que se aprovecha para pasar a ejecutar las acciones de
forma segura.
Gramáticas Atribuidas o análisis semántico.
Hay esquemas de traducción que no pueden ser reconocidos por
analizadores LALR(1) directamente. En concreto, se suelen ejecutar
acciones semánticas únicamente cuando se hace una reducción, y
nunca cuando se desplaza.
Gramáticas Atribuidas o análisis semántico.
Hay casos más liosos, que se producen en gramáticas que son
ambiguas, o sea, aquellas en que una sentencia puede tener más de
un árbol sintáctico.
Gramáticas Atribuidas o análisis semántico.

Contenu connexe

Tendances

2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalLuis Jherry
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficaciónAndhy H Palma
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosYarquiri Claudio
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de PilaPablo Guerra
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 

Tendances (20)

2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Autómatas de pila
Autómatas de pila Autómatas de pila
Autómatas de pila
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 

Similaire à (gramatica atribuida)

Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarragaFabricio Galárraga
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Alex Toapanta
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semánticoAndres Pozo
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15AndresDvila
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semanticoAlvaro Cedeño
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintácticoSantiago Andrade
 
Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Dispositivosmoviles
 
Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2GLORIABELEN3
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemasJESSIKADG86
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Taller n15 compiladores_analis_semantico_15_junio_2021 (1)
Taller n15 compiladores_analis_semantico_15_junio_2021 (1)Taller n15 compiladores_analis_semantico_15_junio_2021 (1)
Taller n15 compiladores_analis_semantico_15_junio_2021 (1)Bryan Chasiguano
 
Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019DanielRosero23
 
Representaciones estructurales
Representaciones estructuralesRepresentaciones estructurales
Representaciones estructuralesAlvays Rodriguez
 

Similaire à (gramatica atribuida) (20)

Analisis semantico 06 06-2019 galarraga
Analisis semantico  06 06-2019 galarragaAnalisis semantico  06 06-2019 galarraga
Analisis semantico 06 06-2019 galarraga
 
Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico Taller compiladores Análisis Semántico
Taller compiladores Análisis Semántico
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Analisis sintactico actividad 15
Analisis sintactico actividad 15Analisis sintactico actividad 15
Analisis sintactico actividad 15
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintáctico
 
Taller análisis sintáctico
Taller análisis sintácticoTaller análisis sintáctico
Taller análisis sintáctico
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.
 
Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2Analisis Semantico Taller 1 Parcial 2
Analisis Semantico Taller 1 Parcial 2
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Taller n15 compiladores_analis_semantico_15_junio_2021 (1)
Taller n15 compiladores_analis_semantico_15_junio_2021 (1)Taller n15 compiladores_analis_semantico_15_junio_2021 (1)
Taller n15 compiladores_analis_semantico_15_junio_2021 (1)
 
Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019
 
Representaciones estructurales
Representaciones estructuralesRepresentaciones estructurales
Representaciones estructurales
 
T37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandroT37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandro
 

Dernier

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 

Dernier (6)

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 

(gramatica atribuida)

  • 1.
  • 2. Gramáticas Atribuidas o análisis semántico Compiladores e Interpretes
  • 3. Gramáticas Atribuidas o análisis semántico.  Son las elegidas comúnmente para representar la sintaxis de los lenguajes de programación.  Éstas representan cómo debe ser la estructura de cualquier programa perteneciente al lenguaje que describen.
  • 4. Gramáticas Atribuidas o análisis semántico.  Sin embargo, un procesador de lenguaje necesita conocimiento adicional del significado de las construcciones para llevar a cabo acciones en función de la fase en la que se encuentre.
  • 5. Gramáticas Atribuidas o análisis semántico. Además de comprobar que un programa cumple con las reglas de la gramática , hay que comprobar que lo que se quiere hacer tiene sentido. Que hace
  • 6. Gramáticas Atribuidas o análisis semántico. El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. Que hace
  • 7. Gramáticas Atribuidas o análisis semántico. El chequeo semántico se encarga de que los tipos estén correctos, por ejemplo no podemos multiplicar una cadena de caracteres por un entero. Que hace
  • 8. Gramáticas Atribuidas o análisis semántico. Definidas originalmente por Knuth [Knuth68] como un método para describir la semántica de un lenguaje de programación. En si GA es
  • 9. Gramáticas Atribuidas o análisis semántico. En si GA es
  • 10. Gramáticas Atribuidas o análisis semántico.
  • 11. Gramáticas Atribuidas o análisis semántico.
  • 12. Gramáticas Atribuidas o análisis semántico.
  • 13. Gramáticas Atribuidas o análisis semántico. Una gramática atribuida (GA) es una tripleta GA={G,A,R}, donde:
  • 14. Gramáticas Atribuidas o análisis semántico. Existen una serie de reglas de lo que puedo y no puedo utilizar en las acciones intermedias. Reglas sobre atributos: 1.Un atributo solo puede ser usado (en una acción ) detrás del símbolo al que pertenece. 2.El atributo del antecedente solo se puede utilizar en la acción (del final) de su regla. Ej: A Ú cd N1 B {puedo usar el atributo de A}N1 Ú J {No puedo usar el atributo de A}
  • 15. Gramáticas Atribuidas o análisis semántico. Existen una serie de reglas de lo que puedo y no puedo utilizar en las acciones intermedias. Reglas sobre atributos: 3. En una acción intermedia solo puede hacer uso de los atributos de los simbolos que la preceden. Ej A Ú cd N1 B En la acción de N1 solo puedo hacer uso de cd (que es lo que le precede). Veamos todo esto en más profundidad.
  • 16. Gramáticas Atribuidas o análisis semántico. Hay dos notaciones para asociar reglas semánticas con reglas de producción. Las definiciones dirigidas por sintaxis Los de esquemas de traducción.
  • 17. Gramáticas Atribuidas o análisis semántico. Son especificaciones de alto nivel para traducciones. No es necesario que el usuario especifique explícitamente el orden en el que tiene lugar la traducción.
  • 18. Gramáticas Atribuidas o análisis semántico. Indican el orden en que se deben evaluar las reglas semánticas.
  • 19. Gramáticas Atribuidas o análisis semántico. Conceptualmente, tanto con las definiciones dirigidas por sintaxis como con los esquemas de traducción, se analiza sintácticamente la cadena de componentes léxicos de entrada, se construye el árbol de análisis sintáctico y después se recorre el árbol para evaluar las reglas semánticas en sus nodos.
  • 20. Gramáticas Atribuidas o análisis semántico. La evaluación de las reglas semánticas puede generar código, guardar información en una tabla de símbolos, emitir mensajes de error o realizar otras actividades. La traducción de la cadena de componentes léxicos es el resultado obtenido al evaluar las reglas semánticas.
  • 21. Gramáticas Atribuidas o análisis semántico.
  • 22. Gramáticas Atribuidas o análisis semántico. Atributos Atributos sintetizados Son muy utilizados en la práctica. Una definición dirigida por sintaxis que usa atributos sintetizados exclusivamente se denomina definición con atributos sintetizados.
  • 23. Gramáticas Atribuidas o análisis semántico. Atributos Atributos sintetizados Son muy utilizados en la práctica. Una definición dirigida por sintaxis que usa atributos sintetizados exclusivamente se denomina definición con atributos sintetizados.
  • 24. La figura 4.3 contiene un árbol de análisis sintáctico con anotaciones para la entrada 3*5+4n. El resultado, que se imprime en la raíz del árbol, es el valor de E.val en el primer hijo de la raíz. Gramáticas Atribuidas o análisis semántico.
  • 25. La figura 4.3 contiene un árbol de análisis sintáctico con anotaciones para la entrada 3*5+4n. El resultado, que se imprime en la raíz del árbol, es el valor de E.val en el primer hijo de la raíz. Gramáticas Atribuidas o análisis semántico.
  • 26. Gramáticas Atribuidas o análisis semántico. Atributos heredados Es uno cuyo valor en un nodo de un árbol de análisis sintáctico está definido a partir de los atributos en el padre y/o de los hermanos de dicho nodo. Los atributos heredados sirven para expresar la dependencia de una construcción de un lenguaje de programación en el contexto en el que aparece. Atributos
  • 27. Gramáticas Atribuidas o análisis semántico. Por ejemplo de Atributos heredados Se puede utilizar un atributo heredado para comprobar si un identificador aparece en el lado izquierdo o en el derecho de una asignación para decidir si se necesita la dirección o el valor del identificador. Aunque siempre es posible reescribir una definición dirigida por sintaxis para que sólo se utilicen atributos sintetizados, a veces es más natural utilizar definiciones dirigidas por la sintaxis con atributos heredados. Atributos
  • 28. Gramáticas Atribuidas o análisis semántico. Grafo de dependencias Si un atributo b en un nodo de un árbol de análisis sintáctico depende de un atributo c, entonces se debe evaluar la regla semántica para b en ese nodo después de la regla semántica que define a c. Atributos
  • 29. Gramáticas Atribuidas o análisis semántico. Grafo de dependencias Las interdependencias entre los atributos heredados y sintetizados en los nodos de un árbol de análisis sintáctico se pueden representar mediante un grafo dirigido llamado GRAFO DE DEPENDENCIAS. Atributos
  • 30. Más detalladamente, el grafo de dependencias para un determinado árbol de análisis sintáctico se construye de la siguiente manera: Gramáticas Atribuidas o análisis semántico.
  • 31. Gramáticas Atribuidas o análisis semántico. Orden de evaluación Todo ordenamiento topológico de un grafo de dependencias da un orden válido en el que se pueden evaluar las reglas semánticas asociadas con los nodos de un árbol de análisis sintáctico. Atributos
  • 32. Gramáticas Atribuidas o análisis semántico. Gramática L- atribuida Atributos
  • 33. Gramáticas Atribuidas o análisis semántico. Gramática S- atribuida Es una gramática atribuida que sólo contiene atributos sintetizados Una gramática Satribuida es también L- atribuida. Atributos
  • 34. Gramáticas Atribuidas o análisis semántico. Gramática S- atribuida Los atributos sintetizados se pueden evaluar con un analizador sintáctico ascendente conforme la entrada es analizada. El analizador sintáctico puede conservar en su pila los valores de los atributos sintetizados asociados con los símbolos gramaticales. Siempre que se haga una reducción se calculan los valores de los nuevos atributos sintetizados a partir de los atributos que aparecen en la pila para los símbolos gramaticales del lado derecho de la producción con la que se reduce. Atributos
  • 35. Gramáticas Atribuidas o análisis semántico. Es una gramática de contexto libre en la que se encuentran intercalados, en el lado derecho de la regla de producción, fragmentos de programas a los que hemos llamado acciones semánticas. Un esquema de traducción es como una definición dirigida por sintaxis, con la excepción de que el orden de evaluación de las reglas semánticas se muestra explícitamente.
  • 36. Gramáticas Atribuidas o análisis semántico. En este epígrafe se estudiará cómo funciona el análisis LALR(1) con atributos. Recordemos que el LALR(1) es capaz de saber en todo momento qué regla aplicar sin margen de error (ante una gramática que cumpla las restricciones LALR(1)). Este hecho es el que se aprovecha para pasar a ejecutar las acciones de forma segura.
  • 37. Gramáticas Atribuidas o análisis semántico. Hay esquemas de traducción que no pueden ser reconocidos por analizadores LALR(1) directamente. En concreto, se suelen ejecutar acciones semánticas únicamente cuando se hace una reducción, y nunca cuando se desplaza.
  • 38. Gramáticas Atribuidas o análisis semántico. Hay casos más liosos, que se producen en gramáticas que son ambiguas, o sea, aquellas en que una sentencia puede tener más de un árbol sintáctico.
  • 39. Gramáticas Atribuidas o análisis semántico.