Sei sulla pagina 1di 4

ADMINISTRACIN TABLA DE SMBOLOS

= Tabla de Smbolos = Estructura utilizada por el compilador para almacenar informacin (atributos) asociada a los smbolos declarados en el programa en compilacin. Una tabla de smbolos es una estructura de datos que usa el proceso de traduccin de un lenguaje de programacin, por un compilador o un intrprete, donde cada smbolo en el cdigo fuente de un programa est asociado con informacin tal como la ubicacin, el tipo de datos y el mbito de cada variable, constante o procedimiento. Los smbolos en la tabla de smbolos pueden referirse a constantes, a funciones o a tipos de datos en el cdigo fuente de un programa. El administrador de la tabla de smbolos se encarga de manejar los accesos a la tabla de smbolos, en cada una de las etapas de compilacin de un programa. Puede contener adicionalmente: smbolos temporales etiquetas smbolos predefinidos Conceptualmente: coleccin de registros Estructura fuertemente influenciada por aspectos sintcticos y semnticos del lenguaje: Cdigo Los tipos disponibles en el lenguaje: determinan el CONTENIDO de la tabla. Las reglas de mbito: determinan la visibilidad de los smbolos, e.g., el MECANISMO DE ACCESO a la tabla. = Contenido de la tabla = Palabras reservadas: tienen un significado especial; NO pueden ser redefinidas. program beginend type vararrayif...

Smbolos predefinidos: Tienen un significado especial, pero pueden ser redefinidos. Literales, constantes que denotan un valor var a:

record b,c : integer; end; Smbolos generados por el compilador: Genera el smbolo noname1 para el tipo annimo correspondiente al registro. Smbolos definidos por el programador. Variables: tipo, lugar en memoria, valor? referencias?. Tipos de datos : descripcin. Procedimientos y funciones: direccin, parmetros, tipo de resultado. Parmetros: tipo de variable, clase de parmetro. Etiquetas: lugar en el programa. El contenidos de las tablas de smbolos. Operaciones y organizacin. Atributos, lenguajes no estructurados y estructurados en bloques, representacin OO de smbolos y tipos en compiladores de una pasada. = Administracin de la tabla de smbolos = El anlisis semntico conecta las definiciones de las variables con sus usos, checa que cada expresin tenga un tipo correcto y traduce la sintaxis abstracta a una representacin mas simple para generar cdigo maquina. Esta fase es caracterizada por el mantener la tabla de smbolos, la cual mapea identificadores con sus tipos y localidades, tambin esta tabla puede ser llamada environment, donde cada variable local en un programa tiene un mbito o scope dentro del cual es visible. Un ambiente es un conjunto de atados denotados por .

MANEJO DE ERRORES Y SU RECUPERACIN


= Manejo de errores semnticos = Cuando el checador de tipos detecta un error de tipos o un identificador no declarado, debe imprimir el mensaje de error y continuar. Esto debido a que normalmente el programador prefiere que le describan todos los errores posibles del programa fuente. Tipos de errores Lxicos: como escribir mal un identificador, palabra clave u operador. Sintcticos: como una expresin aritmtica con parntesis no equilibrados. Semnticos: como un operador aplicado a un operadorando incompatible. Lgicos: como una llamada infinitamente recursiva

La mayora de los errores se centra en la fase de anlisis sintctico. El manejador de errores debe: Informar la presencia de errores con claridad y exactitud.

Administrador de errores Recuperar de cada error con la suficiente rapidez como para detectar errores posibles. No debe retrasar de manera significativa el procesamiento de programas correctos. Debe indicar la lnea del error y algn mensaje informativo

Estrategias de recuperacin de errores Modo Pnico Recuperacin en modo pnico, tiene las siguientes caractersticas: Es el ms sencillo de implantar. El analizador sintctico desecha componentes lxicos hasta encontrar un carcter de sincronizacin. Estos caracteres son el punto y como (;) entre otros.

Nivel de Frase
Recuperacin a nivel de frase, tiene las siguientes caractersticas: Esta tcnica utiliza una correccin de caracteres adyacentes, ya sea por insercin, eliminacin o intercambio. Esta tcnica permite sustituir , por ;, etc. Son traductores que corrigen errores.

Desafortunadamente para muchos casos no aplican por lo que no se utilizan demasiados.

Producciones de error
Se caracterizan por: Se pueden generar gramticas para generar producciones de error y as de esta forma seguir con el proceso. La dificultad radica en el sentido de encontrar esas reglas gramaticales para generar error. En algunos casos sera inclusiva ms extensa que la gramtica del propio lenguaje. Ejemplo: for(i<3, a<10; i++)

Correccin global
Idealmente, sera recomendable que un traductor hiciera el mnimo de cambios para procesar una entrada invlida. Este algoritmo genera menores costos globales para realizar cambios. El problema radica en que el implementar estas estrategias son muy costosas en tiempo y espacio.

Potrebbero piacerti anche