ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Analizador Semantico


Enviado por   •  2 de Marzo de 2013  •  310 Palabras (2 Páginas)  •  1.488 Visitas

Página 1 de 2

Analizador Semántico

 Un compilador no solo tiene que revisar la sintaxis de código fuente, si no también la semántica de este.

 Al igual que en los lenguajes naturales (español, ingles, etc.) en los lenguajes de programación existen reglas semánticas para definir el significado de los programas, estatutos, expresiones, etc.

 Por ejemplo un error semántico es usar (en pascal ó java) un identificador que no fue anteriormente declarado.

Otro ejemplo de error semántico en un programa es cuando este es compilado y y no se detectan errores pero el momento de ser ejecutado este programa no funciona correctamente.

 En un parser recursivo-descendente, el código de las acciones semánticas es mezclado dentro del flujo de control de las acciones del parser. En un parser especificado en javaCC, las acciones semánticas son fragmentos de código de programa en java unido a las producciones gramáticales.

 Cada símbolo terminal y noterminal puede asociarse con su propio tipo de valor semántico.

Por ejemplo en la siguiente gramática para YACC de una calculadora simple, el tipo asociado con exp e INT podría ser int:

%token INT PLUS MINUS TIMES UMINUS

%start exp

%left PLUS MINUS

%left TIMES

%left UMINIS

exp: INT | exp PLUS exp | exp MINUS exp | exp TIMES exp 1

MINUS exp %prec UMINUS

Acciones semánticas

Dependiendo del tipo de sentencias, las acciones semánticas pueden agruparse en:

• Sentencias de Declaración: completar la sección de tipos de la Tabla de Símbolos.

• Sentencias “ejecutables”: realizar comprobaciones de tipos entre los operandos implicados.

• Funciones y procedimientos: comprobar el número, orden y tipo de los parámetros actuales en cada llamada a una función o procedimiento.

• Identificación de variables: comprobar si un identificador ha sido declarado antes de utilizarlo.

• Etiquetas: comprobar si hay etiquetas repetidas y validación.

• Constantes: comprobar que no se utilicen en la parte izquierda de una asignación.

• Conversiones y equivalencias de tipo: verificación.

• Sobrecarga de operadores y funciones: detectar y 
solventar.

...

Descargar como (para miembros actualizados) txt (2 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com