SlideShare una empresa de Scribd logo
NOMBRE: Andrés Dávila M.
FECHA: 24/06/20
MATERIA: Compiladores
ANALISIS SEMÁNTICO
Contestar las siguientes preguntas
Resuelva cada una de las interrogantes planteadas y subir el enlace al espacio virtual con la
publicación del enlace de la dirección de su blog.
✓ ¿Cuál es el objetivo principal del analizador semántico de un procesador de lenguajes?
El objetivo principal del analizador semántico de un procesador de lenguaje es asegurarse de que el
programa analizado satisfaga las reglas requeridas por la especificación del lenguaje, para garantizar
su correcta ejecución. El tipo y dimensión de análisis semántico requerido varía enormemente de
un lenguaje a otro. En lenguajes interpretados como Lisp o Smalltalk casi no se lleva a cabo análisis
semántico previo a su ejecución, mientras que en lenguajes como Ada, el analizador semántico
deberá comprobar numerosas reglas que un programa fuente está obligado a satisfacer.
▪ A qué refiere la descripción formal de la semántica de lenguajes de programación, cite 6
especificacionesmás usadas.
1. Revelar posibles ambigüedades existentes implementaciones de procesadores de lenguajes o en
documentos descriptivos de lenguajes de programación.
2. Ser utilizados como base para la implementación de procesadores de lenguaje.
3. Verificar propiedades de programas en relación con pruebas de corrección o información
relacionada con su ejecución.
4. Diseñar nuevos lenguajes de programación, permitiendo registrar decisiones sobre
construcciones particulares del lenguaje, así como permitir descubrir posibles irregularidades u
omisiones.
5. Facilitar la comprensión de los lenguajes por parte del programador y como mecanismo de
comunicación entre diseñador del lenguaje, implementador y programador. La especificación
semántica de un lenguaje, como documento de referencia, aclara el comportamiento del lenguaje
y sus diversas construcciones.
6. Estandarizar lenguajes mediante la publicación de su semántica de un modo no ambiguo. Los
programas deben poder procesarse en otra implementación de procesador del mismo lenguaje
exhibiendo el mismo comportamiento.
▪ Cuáles son los puntos de vista de descripción semántica más utilizados, realice un resumen corto
y un ejemplo de la especificación de los mismos.
Semántica Operacional. -Lo que realmente especifica es como se lleva a cabo dicha ejecución. Los
significados del programa son descritos en términos de operaciones, utilizando un lenguaje basado
en reglas de inferencia lógicas en las que se describen formalmente las secuencias de ejecución de
las diferentes instrucciones sobre una máquina abstracta.
Ejemplo: Este ejemplo es una especificación formal de la semántica de una asignación en un
lenguaje de programación.
Semántica denotacional.- La representación del comportamiento de cada sentencia o frase del
lenguaje se lleva a cabo mediante entidades matemáticas (denotación) que representan el efecto
de haber ejecutado las sentencia o frase asociada.
Ejemplo: La especificación de una asignación en semántica denatacional es:
Semántica Axiomática.- Especifica las propiedades del efecto de ejecutar las sentencias
sintácticamente correctas, expresadas mediante asertos, desoyendo así los aspectos de su
ejecución. El sistema permite estudiar formalmente las propiedades del lenguaje y se requiere la
utilización de sistemas consistentes y completos [Hoare73]. Se utiliza mayoritariamente en
verificación formal de corrección de programas.
Ejemplo:
Semántica algebraica. - Se basa en la especificación de tipos de datos abstractos mediante una
colección de operaciones (incluyendo alguna constante). Puesto que un conjunto de valores al que
se le añaden una colección de operaciones constituye un álgebra, este método de descripción
formal de semántica se denomina semántica algebraica [Meinke92]. Este método está pues
enfocado a especificar la semántica de los tipos y sus operaciones. La semántica algebraica
constituye también la base de la semántica de acciones, empleada para especificar la semántica de
lenguajes de programación al completo.
Ejemplo. La especificación del tipo lógico (booleano) en un lenguaje de programación puede llevarse
a cabo del siguiente modo, siguiendo la semántica algebraica:
Semántica de acciones.- Fue elaborado por Peter Mosses [Mosses91] para describir la semántica
de lenguajes de un modo más inteligible. Las especificaciones semánticas de lenguajes siempre han
sido consideradas como oscuras, complicadas y únicamente legibles por expertos, adquiriendo así
una mala reputación por su uso intensivo de símbolos matemáticos [Watt96]. De este modo, esta
semántica está basada en el concepto de acciones que reflejan las operaciones comunes en los
lenguajes de programación, ofreciendo primitivas para la asignación y declaración de
identificadores, así como la combinación de instrucciones mediante control de flujo secuencial,
condicional e iterativo.
▪ Cuál es la conexión directa entre el análisis semántico con el resto de las fases que emplea u n
compilador, explique a través del organizador gráfico de Aho.
La conexión directa que tiene el análisis semántico con el resto de fases del compilador es la Tabla
de símbolos (Inserción y búsqueda de símbolos) y otra con el Manejador de errores (Errores
Semánticos).
▪ Cite de forma rápida ejemplos de comprobaciones que hace el analizador semántico con
respecto a:
✓ Declaración de identificadores y reglas de ámbitos
✓ Comprobaciones de unicidad
-Constantes de cada case en Pascal, C o Java. Cada uno de los elementos existentes en los
condicionales múltiples de los lenguajes de programación mencionados, ha de ser único. En otro
caso, el analizador semántico deberá generar un error de compilación.
−Los valores de un tipo enumerado de Pascal o C han de ser únicos.
−Las etiquetas de un lenguaje de programación, como un ensamblador, no pueden estar repetidas,
puesto que los saltos a las mismas serían ambiguos.
−La declaración de un identificador en un ámbito ha de ser única en multitud de lenguajes de
programación.
✓ Comprobaciones de enlace
En un ensamblador, un salto a una etiqueta requiere que ésta haya sido referida como una posición
de memoria. −En el lenguaje de programación ANSI C [Kernighan91] y en ISO/ANSI C++ [ANSIC++] la
invocación a una función o método requiere que éstos hayan sido declarados previamente.
✓ Comprobaciones pospuestas por el analizador sintáctico
Las sentencias break y continue de Java y C sólo pueden utilizarse en determinadas estructuras de
control del lenguaje. Éste es otro escenario para que el analizador sintáctico posponga la
comprobación hasta la fase análisis semántico.
✓ Comprobaciones dinámicas
-El acceso a un vector fuera de rango.
-Utilización de un puntero nulo.
-División por cero.
✓ Comprobaciones de tipo
-Comprobar las operaciones que se pueden aplicar a cada construcción del lenguaje. Dado un
elemento del lenguaje, su tipo identifica las operaciones que sobre él se pueden aplicar. Por
ejemplo, en el lenguaje Java el operador de producto no es aplicable a una referencia a un objeto.
De un modo contrario, el operador punto sí es válido.
-Inferir el tipo de cada construcción del lenguaje. Para poder implementar la comprobación anterior,
es necesario conocer el tipo de toda construcción sintácticamente válida del lenguaje. Así, el
analizador semántico deberá aplicar las distintas reglas de inferencia de tipos descritas en la
especificación del lenguaje de programación, para conocer el tipo de cada construcción del lenguaje.
▪ Qué comprende el análisis semántico como decoración del Árbol de Sintaxis abstracta.
Comprenden la asignación de información adicional a los nodos del AST representando propiedades
de las construcciones sintácticas del lenguaje, tales como el tipo de una expresión. Un AST decorado
o anotado es una ampliación del AST, en el que a cada nodo del mismo se le añaden atributos
indicando las propiedades necesarias de la construcción sintáctica que representan.
▪ Defina las características más importantes del Árbol de sintaxis abstracta.
-Las expresiones tendrán asociadas un atributo tipo que indique si son reales o enteras. Esto es
necesario porque se podrá asignar un valor entero a una expresión real, pero no al revés.
−Las expresiones deberán tener un atributo lógico que indique si son o no lvalues. De este modo, se
podrá comprobar si lo que está a la izquierda de la asignación es o no semánticamente correcto.
−En una declaración se deberá insertar el identificador en una tabla de símbolos con su tipo
declarado, para poder conocer posteriormente el tipo de cualquier identificador en una expresión.
Es, por tanto, necesario asignar un atributo nombre (cadena de caracteres) a un identificador.
−Finalmente, aunque más enfocado a la fase de generación de código o interpretación que al análisis
semántico– se les asigna un valor entero o real a las constantes del lenguaje.
▪ Defina una gramática concreta para la siguiente operación 7+(4*2) * 5/(10*2) y finalmente
genere su árbol sintáctico.
El analizador sintáctico comprueba que las sentencias que componen el texto fuente son correctas
en el lenguaje, creando una representación interna que corresponde a la sentencia analizada. De
esta manera se garantiza que sólo serán procesadas las sentencias que pertenezcan al lenguaje
fuente. Durante el análisis sintáctico, así como en las demás etapas, se van mostrando los errores
que se encuentran.

Más contenido relacionado

La actualidad más candente

ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
MAURICIOANDRES39
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
LuisMolina269
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
Areli Gómez
 
Unmsm02 2008
Unmsm02 2008Unmsm02 2008
Unmsm02 2008
Monica Diaz
 
Clase15
Clase15Clase15
Clase15
Areli Gómez
 
Compiladores y analizador léxico
Compiladores y analizador léxicoCompiladores y analizador léxico
Compiladores y analizador léxico
katherine133
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
Pablo Guerra
 
Analizador lexico
Analizador lexicoAnalizador lexico
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
JESSIKADG86
 
Introducción a Compiladores
Introducción a  CompiladoresIntroducción a  Compiladores
Introducción a Compiladores
Leopoldo Capa
 
Alejandra gomez
Alejandra gomezAlejandra gomez
Alejandra gomez
alejitaacg
 
manual básico de programación en c
manual básico de programación en c manual básico de programación en c
manual básico de programación en c
Liz O
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
Infomania pro
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
Infomania pro
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
Infomania pro
 
Compiladores
CompiladoresCompiladores
Compiladores
Isabel
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
Infomania pro
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
Oscar Delgado
 
Descripción del lenguaje red
Descripción del lenguaje redDescripción del lenguaje red
Descripción del lenguaje red
Richard Padilla
 

La actualidad más candente (19)

ANALISIS SEMANTICO
ANALISIS SEMANTICO ANALISIS SEMANTICO
ANALISIS SEMANTICO
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Unmsm02 2008
Unmsm02 2008Unmsm02 2008
Unmsm02 2008
 
Clase15
Clase15Clase15
Clase15
 
Compiladores y analizador léxico
Compiladores y analizador léxicoCompiladores y analizador léxico
Compiladores y analizador léxico
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Introducción a Compiladores
Introducción a  CompiladoresIntroducción a  Compiladores
Introducción a Compiladores
 
Alejandra gomez
Alejandra gomezAlejandra gomez
Alejandra gomez
 
manual básico de programación en c
manual básico de programación en c manual básico de programación en c
manual básico de programación en c
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Descripción del lenguaje red
Descripción del lenguaje redDescripción del lenguaje red
Descripción del lenguaje red
 

Similar a Analisis sintactico actividad 15

Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
JOSSELINEMARIBEL
 
Lenguaje de programacion mike alvarado
Lenguaje de programacion mike alvaradoLenguaje de programacion mike alvarado
Lenguaje de programacion mike alvarado
Luis José Bello Mendoza
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
Alvaro Cedeño
 
Compilador2
Compilador2Compilador2
Compilador2
Calzada Meza
 
Alejandra gomez (1)
Alejandra gomez (1)Alejandra gomez (1)
Alejandra gomez (1)
alejandra985
 
Alejandra gomez (1)
Alejandra gomez (1)Alejandra gomez (1)
Alejandra gomez (1)
alejandra985
 
Taller n13 compiladores_10_junio_2021
Taller n13 compiladores_10_junio_2021Taller n13 compiladores_10_junio_2021
Taller n13 compiladores_10_junio_2021
Bryan Chasiguano
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
Jhampier_Piedra
 
Fases de los compiladores
Fases de los compiladoresFases de los compiladores
Fases de los compiladores
Santiago 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
 
Tratamiento de errores
Tratamiento de erroresTratamiento de errores
Tratamiento de errores
JOSSELINEMARIBEL
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
Universidad
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
Eraclio Castillo Vidal
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
Andres Pozo
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
Chamakito Edwinshito Cruz Guevara
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
Infomania pro
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
AndresDvila
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
JavierCR2017
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador Sintáctico
Raul Gomez
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
Bayo Chicaiza
 

Similar a Analisis sintactico actividad 15 (20)

Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Lenguaje de programacion mike alvarado
Lenguaje de programacion mike alvaradoLenguaje de programacion mike alvarado
Lenguaje de programacion mike alvarado
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Compilador2
Compilador2Compilador2
Compilador2
 
Alejandra gomez (1)
Alejandra gomez (1)Alejandra gomez (1)
Alejandra gomez (1)
 
Alejandra gomez (1)
Alejandra gomez (1)Alejandra gomez (1)
Alejandra gomez (1)
 
Taller n13 compiladores_10_junio_2021
Taller n13 compiladores_10_junio_2021Taller n13 compiladores_10_junio_2021
Taller n13 compiladores_10_junio_2021
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Fases de los compiladores
Fases de los compiladoresFases de los compiladores
Fases de los compiladores
 
Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.Actividad 2 Programación de Sistemas.
Actividad 2 Programación de Sistemas.
 
Tratamiento de errores
Tratamiento de erroresTratamiento de errores
Tratamiento de errores
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Preguntas de diagnostico
Preguntas de diagnosticoPreguntas de diagnostico
Preguntas de diagnostico
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador Sintáctico
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 

Más de AndresDvila

Manual de instalacion vegas
Manual de instalacion vegasManual de instalacion vegas
Manual de instalacion vegas
AndresDvila
 
Segmentacion de imagenes
Segmentacion de imagenesSegmentacion de imagenes
Segmentacion de imagenes
AndresDvila
 
Practica 20 mat lab
Practica 20 mat labPractica 20 mat lab
Practica 20 mat lab
AndresDvila
 
Practica 7 mat lab
Practica 7 mat labPractica 7 mat lab
Practica 7 mat lab
AndresDvila
 
Matlab practica 6
Matlab practica 6Matlab practica 6
Matlab practica 6
AndresDvila
 
Mat lab practica 5
Mat lab practica 5Mat lab practica 5
Mat lab practica 5
AndresDvila
 
Mat lab practica 14
Mat lab practica 14Mat lab practica 14
Mat lab practica 14
AndresDvila
 
Mat lab practica 3
Mat lab practica 3Mat lab practica 3
Mat lab practica 3
AndresDvila
 
Actividad dos y tres
Actividad dos y tresActividad dos y tres
Actividad dos y tres
AndresDvila
 
Instalacion mat lab
Instalacion mat labInstalacion mat lab
Instalacion mat lab
AndresDvila
 
Luz y espectro electromagnetico
Luz y espectro electromagneticoLuz y espectro electromagnetico
Luz y espectro electromagnetico
AndresDvila
 
Fundamentos de la teoria del color
Fundamentos de la teoria del colorFundamentos de la teoria del color
Fundamentos de la teoria del color
AndresDvila
 
Teoria del color
Teoria del colorTeoria del color
Teoria del color
AndresDvila
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
AndresDvila
 
Taller 26 gramatica independientes de contexto
Taller 26 gramatica independientes de contextoTaller 26 gramatica independientes de contexto
Taller 26 gramatica independientes de contexto
AndresDvila
 
Gramatica independiente de contexto
Gramatica independiente de contextoGramatica independiente de contexto
Gramatica independiente de contexto
AndresDvila
 
Informe interprete sencillo irony y c sharp
Informe interprete sencillo irony y c sharpInforme interprete sencillo irony y c sharp
Informe interprete sencillo irony y c sharp
AndresDvila
 
Interprete sencillo utilizando irony y c sharp
Interprete sencillo utilizando irony y c sharpInterprete sencillo utilizando irony y c sharp
Interprete sencillo utilizando irony y c sharp
AndresDvila
 
Gold parser
Gold parserGold parser
Gold parser
AndresDvila
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
AndresDvila
 

Más de AndresDvila (20)

Manual de instalacion vegas
Manual de instalacion vegasManual de instalacion vegas
Manual de instalacion vegas
 
Segmentacion de imagenes
Segmentacion de imagenesSegmentacion de imagenes
Segmentacion de imagenes
 
Practica 20 mat lab
Practica 20 mat labPractica 20 mat lab
Practica 20 mat lab
 
Practica 7 mat lab
Practica 7 mat labPractica 7 mat lab
Practica 7 mat lab
 
Matlab practica 6
Matlab practica 6Matlab practica 6
Matlab practica 6
 
Mat lab practica 5
Mat lab practica 5Mat lab practica 5
Mat lab practica 5
 
Mat lab practica 14
Mat lab practica 14Mat lab practica 14
Mat lab practica 14
 
Mat lab practica 3
Mat lab practica 3Mat lab practica 3
Mat lab practica 3
 
Actividad dos y tres
Actividad dos y tresActividad dos y tres
Actividad dos y tres
 
Instalacion mat lab
Instalacion mat labInstalacion mat lab
Instalacion mat lab
 
Luz y espectro electromagnetico
Luz y espectro electromagneticoLuz y espectro electromagnetico
Luz y espectro electromagnetico
 
Fundamentos de la teoria del color
Fundamentos de la teoria del colorFundamentos de la teoria del color
Fundamentos de la teoria del color
 
Teoria del color
Teoria del colorTeoria del color
Teoria del color
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Taller 26 gramatica independientes de contexto
Taller 26 gramatica independientes de contextoTaller 26 gramatica independientes de contexto
Taller 26 gramatica independientes de contexto
 
Gramatica independiente de contexto
Gramatica independiente de contextoGramatica independiente de contexto
Gramatica independiente de contexto
 
Informe interprete sencillo irony y c sharp
Informe interprete sencillo irony y c sharpInforme interprete sencillo irony y c sharp
Informe interprete sencillo irony y c sharp
 
Interprete sencillo utilizando irony y c sharp
Interprete sencillo utilizando irony y c sharpInterprete sencillo utilizando irony y c sharp
Interprete sencillo utilizando irony y c sharp
 
Gold parser
Gold parserGold parser
Gold parser
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 

Último

Nivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelaciónNivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelación
waldir orosco tinta
 
Aletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptxAletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptx
jeffersoncolina427
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
MONICADELROCIOMUNZON1
 
Carlos Augusto da Silva Lins todosIngressantes2024-1.pdf
Carlos Augusto da Silva Lins todosIngressantes2024-1.pdfCarlos Augusto da Silva Lins todosIngressantes2024-1.pdf
Carlos Augusto da Silva Lins todosIngressantes2024-1.pdf
juntosvenceremosbras
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIAMATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
ROXYLOPEZ10
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
KruggerCossio1
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx
1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx
1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx
RenanWVargas
 
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdfPRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
fabian28735081
 
26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...
26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...
26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...
FlavioMedina10
 
Presentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdfPresentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdf
jorgecuasapaz182
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
azulsarase
 
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de PlantasDISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
HalmarMiranda
 
Norma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.pptNorma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.ppt
linapaolac5
 
Presentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calorPresentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calor
GerardoBracho3
 
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptxJuzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Folke Claudio Tantahuillca Landeo
 
S01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdf
S01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdfS01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdf
S01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdf
Alex809116
 

Último (20)

Nivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelaciónNivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelación
 
Aletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptxAletas de Transferencia de Calor Jefferson Colina.pptx
Aletas de Transferencia de Calor Jefferson Colina.pptx
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
 
Carlos Augusto da Silva Lins todosIngressantes2024-1.pdf
Carlos Augusto da Silva Lins todosIngressantes2024-1.pdfCarlos Augusto da Silva Lins todosIngressantes2024-1.pdf
Carlos Augusto da Silva Lins todosIngressantes2024-1.pdf
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIAMATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx
1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx
1 ANALISIS DE MASA Y ENERGÍA DE VOLÚMENES DE CONTROL [Autoguardado].pptx
 
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdfPRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
 
26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...
26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...
26.-MARZO-SECTOR-MINERO-IDENTIFICACIÓN-DE-PELIGROS-Y-RIESGOS-CON-ENFOQUE-A-P...
 
Presentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdfPresentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdf
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
 
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de PlantasDISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
DISEÑO DE PLANTA TIPO CELULAR - Diseño de Plantas
 
Norma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.pptNorma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.ppt
 
Presentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calorPresentación Aislante térmico.pdf Transferencia de calor
Presentación Aislante térmico.pdf Transferencia de calor
 
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptxJuzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
 
S01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdf
S01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdfS01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdf
S01_CONTENIDO DE CLASE SENCICO, ADMINISTRACIÓN DE OBRAS.pdf
 

Analisis sintactico actividad 15

  • 1. NOMBRE: Andrés Dávila M. FECHA: 24/06/20 MATERIA: Compiladores ANALISIS SEMÁNTICO Contestar las siguientes preguntas Resuelva cada una de las interrogantes planteadas y subir el enlace al espacio virtual con la publicación del enlace de la dirección de su blog. ✓ ¿Cuál es el objetivo principal del analizador semántico de un procesador de lenguajes? El objetivo principal del analizador semántico de un procesador de lenguaje es asegurarse de que el programa analizado satisfaga las reglas requeridas por la especificación del lenguaje, para garantizar su correcta ejecución. El tipo y dimensión de análisis semántico requerido varía enormemente de un lenguaje a otro. En lenguajes interpretados como Lisp o Smalltalk casi no se lleva a cabo análisis semántico previo a su ejecución, mientras que en lenguajes como Ada, el analizador semántico deberá comprobar numerosas reglas que un programa fuente está obligado a satisfacer. ▪ A qué refiere la descripción formal de la semántica de lenguajes de programación, cite 6 especificacionesmás usadas. 1. Revelar posibles ambigüedades existentes implementaciones de procesadores de lenguajes o en documentos descriptivos de lenguajes de programación. 2. Ser utilizados como base para la implementación de procesadores de lenguaje. 3. Verificar propiedades de programas en relación con pruebas de corrección o información relacionada con su ejecución. 4. Diseñar nuevos lenguajes de programación, permitiendo registrar decisiones sobre construcciones particulares del lenguaje, así como permitir descubrir posibles irregularidades u omisiones. 5. Facilitar la comprensión de los lenguajes por parte del programador y como mecanismo de comunicación entre diseñador del lenguaje, implementador y programador. La especificación semántica de un lenguaje, como documento de referencia, aclara el comportamiento del lenguaje y sus diversas construcciones. 6. Estandarizar lenguajes mediante la publicación de su semántica de un modo no ambiguo. Los programas deben poder procesarse en otra implementación de procesador del mismo lenguaje exhibiendo el mismo comportamiento. ▪ Cuáles son los puntos de vista de descripción semántica más utilizados, realice un resumen corto y un ejemplo de la especificación de los mismos.
  • 2. Semántica Operacional. -Lo que realmente especifica es como se lleva a cabo dicha ejecución. Los significados del programa son descritos en términos de operaciones, utilizando un lenguaje basado en reglas de inferencia lógicas en las que se describen formalmente las secuencias de ejecución de las diferentes instrucciones sobre una máquina abstracta. Ejemplo: Este ejemplo es una especificación formal de la semántica de una asignación en un lenguaje de programación. Semántica denotacional.- La representación del comportamiento de cada sentencia o frase del lenguaje se lleva a cabo mediante entidades matemáticas (denotación) que representan el efecto de haber ejecutado las sentencia o frase asociada. Ejemplo: La especificación de una asignación en semántica denatacional es: Semántica Axiomática.- Especifica las propiedades del efecto de ejecutar las sentencias sintácticamente correctas, expresadas mediante asertos, desoyendo así los aspectos de su ejecución. El sistema permite estudiar formalmente las propiedades del lenguaje y se requiere la utilización de sistemas consistentes y completos [Hoare73]. Se utiliza mayoritariamente en verificación formal de corrección de programas. Ejemplo:
  • 3. Semántica algebraica. - Se basa en la especificación de tipos de datos abstractos mediante una colección de operaciones (incluyendo alguna constante). Puesto que un conjunto de valores al que se le añaden una colección de operaciones constituye un álgebra, este método de descripción formal de semántica se denomina semántica algebraica [Meinke92]. Este método está pues enfocado a especificar la semántica de los tipos y sus operaciones. La semántica algebraica constituye también la base de la semántica de acciones, empleada para especificar la semántica de lenguajes de programación al completo. Ejemplo. La especificación del tipo lógico (booleano) en un lenguaje de programación puede llevarse a cabo del siguiente modo, siguiendo la semántica algebraica: Semántica de acciones.- Fue elaborado por Peter Mosses [Mosses91] para describir la semántica de lenguajes de un modo más inteligible. Las especificaciones semánticas de lenguajes siempre han sido consideradas como oscuras, complicadas y únicamente legibles por expertos, adquiriendo así una mala reputación por su uso intensivo de símbolos matemáticos [Watt96]. De este modo, esta semántica está basada en el concepto de acciones que reflejan las operaciones comunes en los
  • 4. lenguajes de programación, ofreciendo primitivas para la asignación y declaración de identificadores, así como la combinación de instrucciones mediante control de flujo secuencial, condicional e iterativo. ▪ Cuál es la conexión directa entre el análisis semántico con el resto de las fases que emplea u n compilador, explique a través del organizador gráfico de Aho. La conexión directa que tiene el análisis semántico con el resto de fases del compilador es la Tabla de símbolos (Inserción y búsqueda de símbolos) y otra con el Manejador de errores (Errores Semánticos). ▪ Cite de forma rápida ejemplos de comprobaciones que hace el analizador semántico con respecto a:
  • 5. ✓ Declaración de identificadores y reglas de ámbitos ✓ Comprobaciones de unicidad -Constantes de cada case en Pascal, C o Java. Cada uno de los elementos existentes en los condicionales múltiples de los lenguajes de programación mencionados, ha de ser único. En otro caso, el analizador semántico deberá generar un error de compilación. −Los valores de un tipo enumerado de Pascal o C han de ser únicos. −Las etiquetas de un lenguaje de programación, como un ensamblador, no pueden estar repetidas, puesto que los saltos a las mismas serían ambiguos. −La declaración de un identificador en un ámbito ha de ser única en multitud de lenguajes de programación. ✓ Comprobaciones de enlace En un ensamblador, un salto a una etiqueta requiere que ésta haya sido referida como una posición de memoria. −En el lenguaje de programación ANSI C [Kernighan91] y en ISO/ANSI C++ [ANSIC++] la invocación a una función o método requiere que éstos hayan sido declarados previamente. ✓ Comprobaciones pospuestas por el analizador sintáctico Las sentencias break y continue de Java y C sólo pueden utilizarse en determinadas estructuras de control del lenguaje. Éste es otro escenario para que el analizador sintáctico posponga la comprobación hasta la fase análisis semántico. ✓ Comprobaciones dinámicas -El acceso a un vector fuera de rango. -Utilización de un puntero nulo. -División por cero. ✓ Comprobaciones de tipo
  • 6. -Comprobar las operaciones que se pueden aplicar a cada construcción del lenguaje. Dado un elemento del lenguaje, su tipo identifica las operaciones que sobre él se pueden aplicar. Por ejemplo, en el lenguaje Java el operador de producto no es aplicable a una referencia a un objeto. De un modo contrario, el operador punto sí es válido. -Inferir el tipo de cada construcción del lenguaje. Para poder implementar la comprobación anterior, es necesario conocer el tipo de toda construcción sintácticamente válida del lenguaje. Así, el analizador semántico deberá aplicar las distintas reglas de inferencia de tipos descritas en la especificación del lenguaje de programación, para conocer el tipo de cada construcción del lenguaje. ▪ Qué comprende el análisis semántico como decoración del Árbol de Sintaxis abstracta. Comprenden la asignación de información adicional a los nodos del AST representando propiedades de las construcciones sintácticas del lenguaje, tales como el tipo de una expresión. Un AST decorado o anotado es una ampliación del AST, en el que a cada nodo del mismo se le añaden atributos indicando las propiedades necesarias de la construcción sintáctica que representan. ▪ Defina las características más importantes del Árbol de sintaxis abstracta. -Las expresiones tendrán asociadas un atributo tipo que indique si son reales o enteras. Esto es necesario porque se podrá asignar un valor entero a una expresión real, pero no al revés. −Las expresiones deberán tener un atributo lógico que indique si son o no lvalues. De este modo, se podrá comprobar si lo que está a la izquierda de la asignación es o no semánticamente correcto. −En una declaración se deberá insertar el identificador en una tabla de símbolos con su tipo declarado, para poder conocer posteriormente el tipo de cualquier identificador en una expresión. Es, por tanto, necesario asignar un atributo nombre (cadena de caracteres) a un identificador. −Finalmente, aunque más enfocado a la fase de generación de código o interpretación que al análisis semántico– se les asigna un valor entero o real a las constantes del lenguaje. ▪ Defina una gramática concreta para la siguiente operación 7+(4*2) * 5/(10*2) y finalmente genere su árbol sintáctico.
  • 7. El analizador sintáctico comprueba que las sentencias que componen el texto fuente son correctas en el lenguaje, creando una representación interna que corresponde a la sentencia analizada. De esta manera se garantiza que sólo serán procesadas las sentencias que pertenezcan al lenguaje fuente. Durante el análisis sintáctico, así como en las demás etapas, se van mostrando los errores que se encuentran.