SlideShare ist ein Scribd-Unternehmen logo
1 von 32
ANÁLISIS SEMÁNTICO
Grupo 6: Irigoin Castillo, Cristhian
Martínez Roldan, Julio
Paucar Méndez , Martin
UNIVERSIDAD NACIONAL DEL CALLAO
Facultad de Ingeniería Industrial y de Sistemas
INTRODUCCIÓN AL ANÁLISIS
SEMÁNTICO
INTRODUCCIÓN A LA SEMÁNTICA DE LOS
LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL
 El análisis semántico es la fase del compilador en
la que se comprueba la corrección semántica del
programa.
 Suele estar compuesto por un conjunto de
subrutinas independientes, que pueden ser
invocadas por los analizadores morfológico y
sintáctico.
OBJETIVOS DEL ANALIZADOR SEMÁNTICO
 Cuando se utiliza un identificador, éste ha sido
declarado previamente.
 Se ha asignado valor a las variables antes de su uso.
 Los índices para acceder a los arrays están dentro del
rango válido.
 En las expresiones aritméticas, los operandos respetan
las reglas sobre los tipos de datos permitidos por los
operadores.
 Cuando se invoca un procedimiento, éste ha sido
declarado adecuadamente. Además, el número, tipo y
posición de cada uno de sus argumentos debe ser
compatible con la declaración.
 Las funciones contienen al menos una instrucción en la
que se devuelve su valor al programa que las invocó.
ANÁLISIS SEMÁNTICO Y GENERACIÓN DE
CÓDIGO
 Compiladores de un solo paso:
 Compiladores de dos o más pasos:
ANÁLISIS SEMÁNTICO EN COMPILADORES DE
UN SOLO PASO
 En los compiladores de un paso, no se utilizan
representaciones intermedias, ya que la generación
del código objeto se entremezcla con el análisis
semántico. En estos compiladores resulta más
complicado utilizar técnicas de optimización de
código y de gestión de memoria.
ANÁLISIS SEMÁNTICO EN COMPILADORES DE
MÁS DE UN PASO
 Cuando se diseña un compilador de más de un
paso, se utilizan representaciones intermedias para
facilitar las fases de optimización de código y
gestión de memoria que se realizarán en los pasos
siguientes.
 Obsérvese que la salida del análisis semántico es
una representación intermedia, que aparece
contenida en un fichero. Las representaciones
intermedias no tienen necesariamente que ocupar
espacio en disco. un compilador, construido de
acuerdo con este esquema, puede terminar la fase
de generación de código optimizado realizando
pasos adicionales sobre la representación
intermedia.
GRAMÁTICA DE ATRIBUTOS
 Informalmente, se llamará atributos de un símbolo
de la gramática a toda información añadida en el
árbol de derivación por el analizador semántico,
asociada a los símbolos de los nodos anotados
ÁRBOLES SINTÁCTICOS ATRIBUIDOS
 Los nodos-padre de los
árboles sintácticos,
decorados por los
atributos, se vuelven
árboles sintácticos
atribuidos
GRAFOS DE DEPENDECIAS DE ATRIBUTOS
 Las ecuaciones
semánticas introducen
dependencias que se
muestran como grafos
de dependencias de
atributos
 Los nodos son los
atributos y los arcos
van de los atributos de
la derecha de una
ecuación al atributo de
la izquierda
CÁLCULO DEL VALOR DE LOS ATRIBUTOS
 El valor de un
atributo se calcula
evaluando la
función semántica
correspondiente
sobre los otros
atributos, según el
orden del grafo de
dependencias de
atributos
PROPAGACIÓN DE ATRIBUTOS
De la instrucción declarativa, la tabla
de símbolos y
el analizador morfológico obtenemos
los atributos de los operandos
INCORPORACION DEL
ANALIZADOR SEMANTICO AL
SINTACTICO
ORDEN DE RECORRIDO DEL ÁRBOL DE ANÁLISIS
 Los analizadores descendentes siguen el que se
conoce como recorrido en profundidad por la
izquierda con vuelta atrás, lo que significa que,
entre todos los nodos posibles, siempre se
continúa por uno de los más profundos. En caso de
empate, se toma el nodo que aparezca lo más a la
izquierda posible (por la izquierda).
Obsérvese que los nodos se visitan en el siguiente orden (se resaltan en
cursiva los nodos visitados más de una vez):D, T, int, T, D, L, L, L, i,
var1, i, L, L,‘,’,L, i, x, i, L, L,‘,’,L, i, y, i, L, D.
 En los analizadores ascendentes no se conoce la
producción aplicada hasta que no se ha analizado la
parte derecha, por lo que las acciones semánticas
deberán aplicarse al final de la producción.
Obsérvese que los nodos se visitan en el siguiente
orden: int, T, var1, i, L,‘,’, x, i, L, ‘,’, y, i, L, D.
TIPOS DE GRAMATICAS DE ATRIBUTOS
 Sintetizados. Su valor esta en función de los
atributos en nodos hijos.
 Heredados.
Su valor esta en función de los atributos en nodos
padres y/o hermanos.
COMPROBACIONES QUE DEBE REALIZAR
UN COMPILADOR
 Comprobación Estática
 Facilita la depuración de programas ya que verifica los
errores posibles.
 No requiere guardar toda la información acerca de los
objetos de datos.
 Comprobación Dinámica
 No requiere de una definición previa del tipo de dato para las
variables.
 El tipo de dato asociado al nombre de la variable puede
cambiar durante su ejecución.
REGLAS SEMÁNTICAS
 Una regla semántica es una expresión formal asociada a
una regla de producción que permite definir la
semántica de la construcción gramatical asociada a la
misma en términos de los símbolos de la regla de
producción.
Contamos con 2 tipos de Reglas Semánticas:
 Reglas de ecuaciones de atributos.
 Reglas de acción semántica.
ECUACIONES DE ATRIBUTOS
Los valores de los atributos, de cada símbolo gramatical, están
relacionados con los valores de los atributos de los otros símbolos en
la regla.
𝑋𝑖. 𝑎𝑗 = 𝑓𝑖𝑗 𝑋0. 𝑎1, … , 𝑋0. 𝑎 𝑘, 𝑋1. 𝑎1, … , 𝑋 𝑛. 𝑎1, … , 𝑋 𝑛. 𝑎 𝑘
donde:
 𝑓𝑖𝑗: es una función matemática de sus argumentos.
 𝑎𝑗, … , 𝑎 𝑘: es la colección de todos los atributos para todas las reglas
gramaticales.
 𝑋𝑖: símbolos gramaticales.
ECUACIONES DE ATRIBUTOS
Ahora veremos un ejemplo para la cadena 𝒇𝒍𝒐𝒂𝒕 𝒙, 𝒚;
Consideremos la siguiente gramática simple para declaraciones de
variables de tipo int y float en una sintaxis tipo C:
𝑑𝑒𝑐𝑙 → 𝑡𝑦𝑝𝑒 𝑣𝑎𝑟L𝑖𝑠𝑡;
𝑡𝑦𝑝𝑒 → 𝒊𝒏𝒕 | 𝒇𝒍𝒐𝒂𝒕
𝑣𝑎𝑟𝐿𝑖𝑠𝑡 → 𝒊𝒅, (𝑣𝑎𝑟𝐿𝑖𝑠𝑡 | 𝒊𝒅)
ECUACIONES DE ATRIBUTOS
Asociada a la gramática tendremos la siguiente gramática con
atributos dtype.
Regla Gramatical Reglas Semánticas
𝑑𝑒𝑐𝑙 → 𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡; 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒 = 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒
𝑡𝑦𝑝𝑒 → 𝒊𝒏𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑖𝑛𝑡𝑒𝑔𝑒𝑟
𝑡𝑦𝑝𝑒 → 𝒇𝒍𝒐𝒂𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑟𝑒𝑎𝑙
𝑣𝑎𝑟𝐿𝑖𝑠𝑡1 → 𝒊𝒅, 𝑣𝑎𝑟𝐿𝑖𝑠𝑡2 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒
𝑣𝑎𝑟𝐿𝑖𝑠𝑡2. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒
𝑣𝑎𝑟𝐿𝑖𝑠𝑡 → 𝒊𝒅 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒
ECUACIONES DE ATRIBUTOS
Las ecuaciones de atributo se pueden exhibir en un árbol de análisis
gramatical.
Regla Gramatical Reglas Semánticas
𝑑𝑒𝑐𝑙 →
𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡;
𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒 =
𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒
𝑡𝑦𝑝𝑒 → 𝒊𝒏𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑖𝑛𝑡𝑒𝑔𝑒𝑟
𝑡𝑦𝑝𝑒 → 𝒇𝒍𝒐𝒂𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑟𝑒𝑎𝑙
𝑣𝑎𝑟𝐿𝑖𝑠𝑡1 → 𝒊𝒅,
𝑣𝑎𝑟𝐿𝑖𝑠𝑡2
𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒
𝑣𝑎𝑟𝐿𝑖𝑠𝑡2. 𝑑𝑡𝑦𝑝𝑒 =
𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒
𝑣𝑎𝑟𝐿𝑖𝑠𝑡 → 𝒊𝒅 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒
GRAFOS DE DEPENDENCIAS
Un grafo de dependencias describe el flujo de información
entre las instancias de atributos en un árbol de análisis
sintáctico específico; una flecha de una instancia de
atributo a otra significa que el valor de la primera se
necesita para calcular la segunda.
GRAFOS DE DEPENDENCIAS
Algoritmo para su construcción:
 Para cada nodo 𝒏 en el árbol de análisis sintáctico hacer
 Para cada atributo 𝑎 del símbolo gramatical en el nodo 𝑛
hacer
 Construir un nodo en el grafo de dependencias para 𝑎;
 Para cada nodo 𝒏 en el árbol de análisis sintáctico hacer
 Para cada regla semántica 𝑏 ≔ 𝑓 𝑐1, 𝑐2, … , 𝑐 𝑘 asociada con
la producción utilizada en 𝑛 hacer
 Para cada 𝑖 ≔ 1 hasta k hacer
 Construir una arista desde el nodo 𝑐𝑖 hasta el nodo para 𝑏;
GRAFOS DE DEPENDENCIAS
Ahora veremos un ejemplo para ello utilizaremos la gramática anterior
y la misma cadena de entrada: 𝑓𝑙𝑜𝑎𝑡 𝑥, 𝑦
ACCIONES SEMÁNTICAS
• Una acción semántica se ejecuta justo cuando se han reconocido los
símbolos que se encuentran a su izquierda en el cuerpo de la
producción.
• Define solo el valor de los atributos de los símbolos que aparecen en
la producción.
• La acción semántica se puede ver como una regla semántica
asociada a un nuevo símbolo no terminal cuya única producción
asociada 𝑀 → 𝑒 es ejecutada
CONCLUSIÓN
Concluimos que el analizador semántico es tan importante
como vital para un compilador, debido a que este analiza
cada estructura sintáctica verificando la coherencia de la
misma.
Para esto emplea las estructuras:
 Árbol sintáctico
 Tabla de Símbolos
Que son las más primordiales para este análisis.

Weitere ähnliche Inhalte

Was ist angesagt?

Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedioEmanuel Gs
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de softwareGeorgy Jose Sanchez
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2perlallamas
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y ProcesadorMario Alberto Antonio Lopez
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 

Was ist angesagt? (20)

Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Codigo intermedio
Codigo intermedioCodigo intermedio
Codigo intermedio
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Planificacion de proyecto de software
Planificacion de proyecto de softwarePlanificacion de proyecto de software
Planificacion de proyecto de software
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Compiladores conceptos
Compiladores conceptosCompiladores conceptos
Compiladores conceptos
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 

Ähnlich wie Analisis Semantico

Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmicasariz6
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmosUNEG
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemasJESSIKADG86
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosMary Sanchez
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo iiMauro Rangel
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semanticoAlvaro Cedeño
 
Fundamentos programcion unidad_i
Fundamentos programcion unidad_iFundamentos programcion unidad_i
Fundamentos programcion unidad_iNany Hernandez
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Fundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.pptFundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.pptCarlosLopez1486
 
Comandos utilizados en el matlab
Comandos utilizados en el matlabComandos utilizados en el matlab
Comandos utilizados en el matlabCesar Gamiz
 

Ähnlich wie Analisis Semantico (20)

Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Algoritmica
AlgoritmicaAlgoritmica
Algoritmica
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Notaciones Relacionales
Notaciones RelacionalesNotaciones Relacionales
Notaciones Relacionales
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
algoritmos3.ppt
algoritmos3.pptalgoritmos3.ppt
algoritmos3.ppt
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para Algoritmos
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo ii
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Unidad 1.1 PROGRAMACION I
Unidad 1.1  PROGRAMACION IUnidad 1.1  PROGRAMACION I
Unidad 1.1 PROGRAMACION I
 
Fundamentos programcion unidad_i
Fundamentos programcion unidad_iFundamentos programcion unidad_i
Fundamentos programcion unidad_i
 
Conceptos de algoritmos
Conceptos de algoritmosConceptos de algoritmos
Conceptos de algoritmos
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
APLICACIONES
APLICACIONESAPLICACIONES
APLICACIONES
 
Fundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.pptFundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.ppt
 
Comandos utilizados en el matlab
Comandos utilizados en el matlabComandos utilizados en el matlab
Comandos utilizados en el matlab
 

Kürzlich hochgeladen

ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesgovovo2388
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 

Kürzlich hochgeladen (20)

ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 

Analisis Semantico

  • 1. ANÁLISIS SEMÁNTICO Grupo 6: Irigoin Castillo, Cristhian Martínez Roldan, Julio Paucar Méndez , Martin UNIVERSIDAD NACIONAL DEL CALLAO Facultad de Ingeniería Industrial y de Sistemas
  • 3. INTRODUCCIÓN A LA SEMÁNTICA DE LOS LENGUAJES DE PROGRAMACIÓN DE ALTO NIVEL  El análisis semántico es la fase del compilador en la que se comprueba la corrección semántica del programa.  Suele estar compuesto por un conjunto de subrutinas independientes, que pueden ser invocadas por los analizadores morfológico y sintáctico.
  • 4. OBJETIVOS DEL ANALIZADOR SEMÁNTICO  Cuando se utiliza un identificador, éste ha sido declarado previamente.  Se ha asignado valor a las variables antes de su uso.  Los índices para acceder a los arrays están dentro del rango válido.  En las expresiones aritméticas, los operandos respetan las reglas sobre los tipos de datos permitidos por los operadores.  Cuando se invoca un procedimiento, éste ha sido declarado adecuadamente. Además, el número, tipo y posición de cada uno de sus argumentos debe ser compatible con la declaración.  Las funciones contienen al menos una instrucción en la que se devuelve su valor al programa que las invocó.
  • 5.
  • 6. ANÁLISIS SEMÁNTICO Y GENERACIÓN DE CÓDIGO  Compiladores de un solo paso:  Compiladores de dos o más pasos:
  • 7. ANÁLISIS SEMÁNTICO EN COMPILADORES DE UN SOLO PASO  En los compiladores de un paso, no se utilizan representaciones intermedias, ya que la generación del código objeto se entremezcla con el análisis semántico. En estos compiladores resulta más complicado utilizar técnicas de optimización de código y de gestión de memoria.
  • 8.
  • 9. ANÁLISIS SEMÁNTICO EN COMPILADORES DE MÁS DE UN PASO  Cuando se diseña un compilador de más de un paso, se utilizan representaciones intermedias para facilitar las fases de optimización de código y gestión de memoria que se realizarán en los pasos siguientes.  Obsérvese que la salida del análisis semántico es una representación intermedia, que aparece contenida en un fichero. Las representaciones intermedias no tienen necesariamente que ocupar espacio en disco. un compilador, construido de acuerdo con este esquema, puede terminar la fase de generación de código optimizado realizando pasos adicionales sobre la representación intermedia.
  • 10.
  • 12.  Informalmente, se llamará atributos de un símbolo de la gramática a toda información añadida en el árbol de derivación por el analizador semántico, asociada a los símbolos de los nodos anotados
  • 13. ÁRBOLES SINTÁCTICOS ATRIBUIDOS  Los nodos-padre de los árboles sintácticos, decorados por los atributos, se vuelven árboles sintácticos atribuidos
  • 14. GRAFOS DE DEPENDECIAS DE ATRIBUTOS  Las ecuaciones semánticas introducen dependencias que se muestran como grafos de dependencias de atributos  Los nodos son los atributos y los arcos van de los atributos de la derecha de una ecuación al atributo de la izquierda
  • 15. CÁLCULO DEL VALOR DE LOS ATRIBUTOS  El valor de un atributo se calcula evaluando la función semántica correspondiente sobre los otros atributos, según el orden del grafo de dependencias de atributos
  • 16. PROPAGACIÓN DE ATRIBUTOS De la instrucción declarativa, la tabla de símbolos y el analizador morfológico obtenemos los atributos de los operandos
  • 18. ORDEN DE RECORRIDO DEL ÁRBOL DE ANÁLISIS  Los analizadores descendentes siguen el que se conoce como recorrido en profundidad por la izquierda con vuelta atrás, lo que significa que, entre todos los nodos posibles, siempre se continúa por uno de los más profundos. En caso de empate, se toma el nodo que aparezca lo más a la izquierda posible (por la izquierda).
  • 19. Obsérvese que los nodos se visitan en el siguiente orden (se resaltan en cursiva los nodos visitados más de una vez):D, T, int, T, D, L, L, L, i, var1, i, L, L,‘,’,L, i, x, i, L, L,‘,’,L, i, y, i, L, D.
  • 20.  En los analizadores ascendentes no se conoce la producción aplicada hasta que no se ha analizado la parte derecha, por lo que las acciones semánticas deberán aplicarse al final de la producción. Obsérvese que los nodos se visitan en el siguiente orden: int, T, var1, i, L,‘,’, x, i, L, ‘,’, y, i, L, D.
  • 21. TIPOS DE GRAMATICAS DE ATRIBUTOS  Sintetizados. Su valor esta en función de los atributos en nodos hijos.  Heredados. Su valor esta en función de los atributos en nodos padres y/o hermanos.
  • 22. COMPROBACIONES QUE DEBE REALIZAR UN COMPILADOR  Comprobación Estática  Facilita la depuración de programas ya que verifica los errores posibles.  No requiere guardar toda la información acerca de los objetos de datos.  Comprobación Dinámica  No requiere de una definición previa del tipo de dato para las variables.  El tipo de dato asociado al nombre de la variable puede cambiar durante su ejecución.
  • 23. REGLAS SEMÁNTICAS  Una regla semántica es una expresión formal asociada a una regla de producción que permite definir la semántica de la construcción gramatical asociada a la misma en términos de los símbolos de la regla de producción. Contamos con 2 tipos de Reglas Semánticas:  Reglas de ecuaciones de atributos.  Reglas de acción semántica.
  • 24. ECUACIONES DE ATRIBUTOS Los valores de los atributos, de cada símbolo gramatical, están relacionados con los valores de los atributos de los otros símbolos en la regla. 𝑋𝑖. 𝑎𝑗 = 𝑓𝑖𝑗 𝑋0. 𝑎1, … , 𝑋0. 𝑎 𝑘, 𝑋1. 𝑎1, … , 𝑋 𝑛. 𝑎1, … , 𝑋 𝑛. 𝑎 𝑘 donde:  𝑓𝑖𝑗: es una función matemática de sus argumentos.  𝑎𝑗, … , 𝑎 𝑘: es la colección de todos los atributos para todas las reglas gramaticales.  𝑋𝑖: símbolos gramaticales.
  • 25. ECUACIONES DE ATRIBUTOS Ahora veremos un ejemplo para la cadena 𝒇𝒍𝒐𝒂𝒕 𝒙, 𝒚; Consideremos la siguiente gramática simple para declaraciones de variables de tipo int y float en una sintaxis tipo C: 𝑑𝑒𝑐𝑙 → 𝑡𝑦𝑝𝑒 𝑣𝑎𝑟L𝑖𝑠𝑡; 𝑡𝑦𝑝𝑒 → 𝒊𝒏𝒕 | 𝒇𝒍𝒐𝒂𝒕 𝑣𝑎𝑟𝐿𝑖𝑠𝑡 → 𝒊𝒅, (𝑣𝑎𝑟𝐿𝑖𝑠𝑡 | 𝒊𝒅)
  • 26. ECUACIONES DE ATRIBUTOS Asociada a la gramática tendremos la siguiente gramática con atributos dtype. Regla Gramatical Reglas Semánticas 𝑑𝑒𝑐𝑙 → 𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡; 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒 = 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 𝑡𝑦𝑝𝑒 → 𝒊𝒏𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑖𝑛𝑡𝑒𝑔𝑒𝑟 𝑡𝑦𝑝𝑒 → 𝒇𝒍𝒐𝒂𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑟𝑒𝑎𝑙 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1 → 𝒊𝒅, 𝑣𝑎𝑟𝐿𝑖𝑠𝑡2 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡2. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡 → 𝒊𝒅 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒
  • 27. ECUACIONES DE ATRIBUTOS Las ecuaciones de atributo se pueden exhibir en un árbol de análisis gramatical. Regla Gramatical Reglas Semánticas 𝑑𝑒𝑐𝑙 → 𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡; 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒 = 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 𝑡𝑦𝑝𝑒 → 𝒊𝒏𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑖𝑛𝑡𝑒𝑔𝑒𝑟 𝑡𝑦𝑝𝑒 → 𝒇𝒍𝒐𝒂𝒕 𝑡𝑦𝑝𝑒. 𝑑𝑡𝑦𝑝𝑒 = 𝑟𝑒𝑎𝑙 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1 → 𝒊𝒅, 𝑣𝑎𝑟𝐿𝑖𝑠𝑡2 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡2. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡1. 𝑑𝑡𝑦𝑝𝑒 𝑣𝑎𝑟𝐿𝑖𝑠𝑡 → 𝒊𝒅 𝑖𝑑. 𝑑𝑡𝑦𝑝𝑒 = 𝑣𝑎𝑟𝐿𝑖𝑠𝑡. 𝑑𝑡𝑦𝑝𝑒
  • 28. GRAFOS DE DEPENDENCIAS Un grafo de dependencias describe el flujo de información entre las instancias de atributos en un árbol de análisis sintáctico específico; una flecha de una instancia de atributo a otra significa que el valor de la primera se necesita para calcular la segunda.
  • 29. GRAFOS DE DEPENDENCIAS Algoritmo para su construcción:  Para cada nodo 𝒏 en el árbol de análisis sintáctico hacer  Para cada atributo 𝑎 del símbolo gramatical en el nodo 𝑛 hacer  Construir un nodo en el grafo de dependencias para 𝑎;  Para cada nodo 𝒏 en el árbol de análisis sintáctico hacer  Para cada regla semántica 𝑏 ≔ 𝑓 𝑐1, 𝑐2, … , 𝑐 𝑘 asociada con la producción utilizada en 𝑛 hacer  Para cada 𝑖 ≔ 1 hasta k hacer  Construir una arista desde el nodo 𝑐𝑖 hasta el nodo para 𝑏;
  • 30. GRAFOS DE DEPENDENCIAS Ahora veremos un ejemplo para ello utilizaremos la gramática anterior y la misma cadena de entrada: 𝑓𝑙𝑜𝑎𝑡 𝑥, 𝑦
  • 31. ACCIONES SEMÁNTICAS • Una acción semántica se ejecuta justo cuando se han reconocido los símbolos que se encuentran a su izquierda en el cuerpo de la producción. • Define solo el valor de los atributos de los símbolos que aparecen en la producción. • La acción semántica se puede ver como una regla semántica asociada a un nuevo símbolo no terminal cuya única producción asociada 𝑀 → 𝑒 es ejecutada
  • 32. CONCLUSIÓN Concluimos que el analizador semántico es tan importante como vital para un compilador, debido a que este analiza cada estructura sintáctica verificando la coherencia de la misma. Para esto emplea las estructuras:  Árbol sintáctico  Tabla de Símbolos Que son las más primordiales para este análisis.