Está en la página 1de 5

1.6 GENERACIÓN DE LA TABLA DE SÍMBOLO Y TABLA DE DIRECCIONES.

• También se le llama tabla de nombres o tabla de identificadores. Es una estructura de datos


que usa el proceso de traducción de un lenguaje de programación, por un compilador o un
intérprete, donde símbolo en el código fuente de un programa está asociado con información
tal como la ubicación, el tipo de datos y el ámbito de cada variable, constante o procedimiento.

• FUNCIONES PRINCIPALES:
Efectuar chequeos semánticos.
Generación de código.
• Consideraciones sobre la Tabla de Símbolos:
Token: “Es un par que consiste en un nombre de token y un valor de atributo opcional”
Lexema: “Es una secuencia de caracteres en el programa fuente, que coinciden con el patrón para un token
y que el analizador léxico identifica como una instancia de ese token”
<nombreToken,valorAtributo>: En el token, el primer componente nombreToken es un símbolo abstracto
que se utiliza durante el análisis sintáctico, y el siguiente componente valorAtributo apunta a una entrada
en la tabla de símbolos.
El analizador léxico encuentra dos tokens de la forma identificar, para los conjuntos de caracteres suma y
resta, para esta etapa de reconocimiento bastará con dicha información; pero el generador de código
necesita saber la posición y uso de éstos identificadores en el programa fuente.
1.7 MANEJO DE ERRORES SEMÁNTICOS.

• Un error semántico se produce cuando la sintaxis del código es correcta, pero la semántica o significado
no es el que se pretendía. La construcción obedece las reglas del lenguaje, y por ello el compilador o
intérprete no detectan los errores semánticos. Los compiladores e intérpretes sólo se ocupan de la
estructura del código que se escribe, y no de su significado. Un error semántico puede hacer que el
programa termine de forma anormal, con o sin un mensaje de error. Hablando en términos coloquiales,
puede hacer que el equipo se quede "colgado".
• Hay que señalar que los posibles errores ya deben estar considerados al diseñar un lenguaje de
programación. Por ejemplo, considerar si cada proposición del lenguaje de programación comienza con
una palabra clave diferente (excepto la proposición de asignación, por supuesto). Sin embargo, es
indispensable lo siguiente:
1. El compilador debe ser capaz de detectar errores en la entrada;
2. El compilador debe recuperarse de los errores sin perder demasiada información;
3. Y sobre todo, el compilador debe producir un mensaje de error que permita al programador
encontrar y corregir fácilmente los elementos (sintácticamente) incorrectos de su programa.

También podría gustarte