Tema1 Analisis Semantico
Tema1 Analisis Semantico
Tema1 Analisis Semantico
Introduccin
Aqu les mostraremos un poco de lo que es la definicin de los siguientes
conceptos en cuanto anlisis semntico y los subtemas que veremos en la
primera unidad de lenguajes y autmatas 2
El objetivo de esta unidad es definir, disear, construir y programarlas fases
del analizador lxico y sintctico de un traductor o compilador.
Anlisis Semntico
Qu es un anlisis semntico?
bueno se refiere a los aspectos del significado, sentido o interpretacin de el
mismo de un determinado elemento, smbolo, palabra, expresin o
representacin formal
determina el tipo de resultados intermedios y que si los argumentos que
tiene un operador pertenece al conjunto de los operadores posibles.
revisa si el significado de lo que se va leyendo es vlido.
el resultado de la fase de anlisis semntico viene siendo lo que se conoce
como "rbol semntico"
ACCIONES SEMNTICAS
Dependiendo del tipo de sentencias, las acciones semnticas pueden
agruparse en: Sentencias de Declaracin: Completar la seccin de tipos de la
Tabla de
Smbolos.
Sentencias ejecutables: Realizar comprobaciones de tipos entre los
operandos implicados.
Funciones y procedimientos: Comprobar el nmero, orden y tipo de los
parmetros actuales en cada llamada a una funcin o procedimiento.
Identificacin de variables: Comprobar si un identificador ha sido declarado
antes de utilizarlo.
Etiquetas: Comprobar si hay etiquetas repetidas y validacin.
Constantes: Comprobar que no se utilicen en la parte izquierda de una
asignacin.
Conversiones y equivalencias de tipo: Verificacin.
Sobrecarga de operadores y funciones: Detectar y solventar.
Comprobacin de tipo en expresiones
E literal
E num
E id
E id [E1]
{E.tipo = char}
{E.tipo = entero}
{E.tipo = Consultar_TS(id.entrada)}
{id.tipo = Consultar_TS(id.entrada)}
Bibliografia
http://progsistemasf7.blogspot.mx/2010/10/pila-semantica-en-unanalizador.html
http://www.lcc.uma.es/~galvez/ftp/tci/tictema5.pdf
http://cic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:compi:comp_s
esion16_2008-1.pdf
http://progsistemasf7.blogspot.mx/2010/10/57-manejo-de-erroressemanticos_9697.html
http://www.lsi.uned.es/procleng/apuntes/20102011/PDL.11.Tema7.AnalisisSemantico.ComprobacionDeTipos.pdf
http://www.slideshare.net/pepgonzalez/analisis-semantico
MANEJO DE ERRORES:
UNIDAD VII.-Manejo de errores.
7.1.-Funcin de manejo de errores.
Los errores encontrados en las distintas fases de anlisis se envan a un mdulo
denominado manejo de errores. En el caso ms sencillo puede ser un
subprograma al que se le invoca envindole el cdigo de error, y que se encarga
de escribir un mensaje con el error correspondiente, y el nmero de lnea donde
se ha producido, as como de cortar el proceso de traduccin. Si se desea
construir un tratamiento de errores ms completo, por ejemplo detectando todos
los errores del programa fuente, el mdulo se complica dado que los analizadores
deben proseguir su trabajo con falta de datos.
7.2.- Errores lxicos.
Los errores lxicos se detectan cuando el analizador lxico intenta reconocer
componentes lxicos y la cadena de caracteres de la entrada no encaja con
ningn patrn. Son situaciones en las que usa un carcter invlido (@, $,",>,...),
que no pertenece al vocabulario del lenguaje de programacin, al escribir mal un
identificador, palabra reservada u operador.
Algunos de los errores lxicos tpicos son:
Nombre ilegales de identificadores: un nombre contiene caracteres invlidos.
Nmeros incorrectos: un nmero contiene caracteres invlidos o no est
formado correctamente.
Errores en palabras reservadas: caracteres omitidos, adicionales o cambiados
de sitio.
Fin de archivo: se detecta un fin de archivo a la mitad de un componente lxico.
Los errores lxicos se deben a descuidos del programador. En general, la
recuperacin de errores lxicos es sencilla y siempre se traduce en la generacin
de un error de sintaxis que sera detectado ms tarde por el analizador sintctico
cuando el analizador lxico devuelve un componente lxico que el analizador
sintctico no espera en esa posicin.
Los mtodos de recuperacin de errores lxicos se basan bien en saltarse
caracteres en la entrada hasta que un patrn se ha podido reconocer; o bien usar
otros mtodos ms sofisticados que incluyen la insercin, borrado, sustitucin de
un carcter en la entrada o intercambio de dos caracteres consecutivos.
7.3.- Errores sintcticos.
El manejo de errores de sintaxis es el ms complicado desde el punto de vista de
la creacin de compiladores. Nos interesa que cuando el compilador encuentre un
error, se recupere y siga buscando errores. Por lo tanto el manejador de errores
de un analizador sintctico debe tener como objetivos: indicar los errores de forma
clara y precisa, aclarar el tipo de error y su localizacin, recuperarse del error,
para poder seguir examinando la entrada, no ralentizar significativamente la
compilacin.
Existen varias formas de corregir errores sintcticos y as evitar todos los
problemas que generara un error no detectado en esta fase y cuando se
encuentra en fases ms avanzadas