You are on page 1of 51

UNIVERSIDAD NACIONAL

SANTIAGO ANTNEZ DE
MAYOLODE
FACULTAD

CIENCIAS

INGENIERA DE
SISTEMAS E INFORMTICA
TEORA DE LENGUAJES
DOCENTE

: Ing. SILVA ZAPATA, Miguel ngel

TEMA: TABLA DE SMBOLOS Y GESTIN DE ERRORES


INTEGRANTES :
CUEVA FERNNDEZ, Clever
GONZALES MAGUIA, Paul
MAMANI MEDINA, Gullit
NORABUENA ARANDA, Arnold
SANCHEZ QUISPE, David.
8/11/16

EL PROCESO DE COMPILACIN
el proceso de compilacin para
su estudio y mejor comprensin
esta dividido en dos etapas:

etapa de anlisis: donde se


controla que el texto fuente
sea correcto en todos los
sentidos y se generan las
estructuras necesarias para
la generacin d cdigo.

etapa de sntesis: se
genera todo el cdigo y
optimizaciones
necesarias
basndose en las estructuras
de la etapa anterior.

INTRODUCCIN:
La tabla de smbolos es la componente del compilador que se encarga de todos los

aspectos dependientes del contexto relacionados con las restricciones impuestas a los
nombres que puedan aparecer en los programas (nombres de variables, constantes,
funciones, palabras reservadas). Estas restricciones obligan a llevar la cuenta, durante
todo el proceso de compilacin de los nombres utilizados (junto con toda la informacin
relevante que se deduzca de la definicin del lenguaje de programacin), para poder
realizar las comprobaciones e imponer las restricciones necesarias.

TABLA DE SMBOLOS

DEFINICIN: (tabla de nombres o tabla de identificadores)


La tabla de smbolos es una estructura

de datos que contiene toda la


informacin
relativa
a
cada
identificador que aparece en el
fuente.
programa
Los identificadores pueden ser de
variables, tipos de datos, funciones,
procedimientos, etc.
Contiene informacin sobre objetos
que van apareciendo en un texto de
entrada, que el compilador necesita
guardar y usar. Los accesos ala misma
se dan cuando en la entrada viene una
declaracin o una utilizacin de os
objetos en cuestin.

TABLA DE SMBOLOS

OBJETIVOS:
Colaborar con las comprobaciones semnticas.
Facilitar ayuda a la generacin de cdigo.
Efectuar chequeos semnticos.

TABLA DE SMBOLOS

CARACTERSTICAS:

Guarda varios objetos y su informacin ms importante.


Su tamao y tipo depende del nmero de la informacin y los objetos a guardar.
Por ser una estructura de datos, existe una amplia gama de medio para implementarla.

TABLA DE SMBOLOS

USOS:
La informacin contenida en la tabla de smbolos se usa en la fase de anlisis y sntesis,

pero mas especficamente:


En el anlisis semntico, es decir, en el momento en que comprobamos si la

declaracin de un objeto es consistente con el uso que se le est dando, si de verdad


existe un objeto, que cumpla con el tipo de datos definido o que se cumpla ciertas
reglas.
Tambin se usa en la generacin de cdigo,
En el tratamiento de errores
En la optimizacin de cdigo.

ESTRUCTURA LGICA DE UNA TS

La primera columna contendra el identificador de cada smbolo: nombre de


variable, funcin, etc. En la segunda habra una lista de atributos mediante los
que se obtiene informacin sobre el smbolo: categora (variable, funcin,
constante...), Tipo, direccin de almacenamiento, lista de argumentos, tipo de
retorno, etc.

ESTRUCTURA LGICA DE UNA TS


La alternativa, utilizada por la mayora de los compiladores actuales, consiste
en guardar los identificadores en una estructura paralela, almacenando en la
propia tabla de smbolos nicamente un puntero a la posicin del identificador
y su longitud, por ejemplo:

ESTRUCTURA LGICA DE UNA TS


Otra posibilidad sera almacenar como smbolo en la tabla principal solamente el
puntero, sin especificar la longitud, usando un delimitador de final de cadena en
la tabla donde se guarden los identificadores. Sera el caso representado en el
siguiente diagrama:

ESTRUCTURA LGICA DE UNA TS


En cuanto a los atributos se refiere, cada smbolo tendr unos u otros dependiendo de la categora a
que pertenezca: variable, constante, procedimiento, etc. Algunos habituales son:
Categora: determina a qu pertenece el smbolo asociado.
Tipo: en el caso de las variables, establece el tipo de informacin que contendrn.
Si el smbolo es una funcin, este mismo atributo indicara el tipo de valor devuelto.
Argumentos: para los procedimientos, funciones o mtodos indicar la lista de parmetros que
precisa y sus tipos.
Posicin: para las variables es habitual contar con una posicin relativa de memoria asociada. Los
intrpretes utilizarn dicha posicin a medida que ejecuten el cdigo para leer y modificar el valor.
Valor: si el smbolo es una constante este atributo contendra el valor que representa.
mbito: en los lenguajes orientados a objetos y con estructura de bloques pueden existir
mltiples smbolos con el mismo identificador en mbitos distintos, sirviendo este atributo para
determinar el mbito a que pertenecen.

OPERACIONES CON LA TS
En las primeras fases del compilador las operaciones ms usuales en ese
momento son la insercin y actualizacin de smbolos. La forma en que se
realizan estas dos operaciones difiere levemente segn que las declaraciones
del lenguaje a compilar sean explcitas o implcitas.

OPERACIONES CON LA TS
En las fases posteriores, en la generacin de cdigo intermedio y cdigo objeto, la
tabla de smbolos se utiliza para comprobar si un identificador existe o no y saber
cules son sus atributos, no producindose nuevas inserciones y quedando la
modificacin de atributos como algo puntual. La operacin que se ejecuta
continuamente es la bsqueda/consulta sobre la tabla de smbolos.

Operaciones con Lenguajes Estructurados de Bloques


Son todos los que tiene algn tipo de bloque que defina mbitos de utilizacin
y visin de identificadores, por tanto estn incluidos tambin los lenguajes
orientados a objetos y no slo los lenguajes estructurados.

OPERACIONES CON LA TS
En las fases posteriores, en la generacin de cdigo intermedio y cdigo objeto, la
tabla de smbolos se utiliza para comprobar si un identificador existe o no y saber
cules son sus atributos, no producindose nuevas inserciones y quedando la
modificacin de atributos como algo puntual. La operacin que se ejecuta
continuamente es la bsqueda/consulta sobre la tabla de smbolos.

Operaciones con Lenguajes Estructurados de Bloques


Son todos los que tiene algn tipo de bloque que defina mbitos de utilizacin
y visin de identificadores, por tanto estn incluidos tambin los lenguajes
orientados a objetos y no slo los lenguajes estructurados.

OPERACIONES CON LA TS
Operaciones con Lenguajes Estructurados de
Bloques
Operaciones de activacin y desactivacin de
tablas de smbolos
Los lenguajes estructurados en bloques tienen dos
operaciones adicionales llamadas set y reset.
La operacin de set se utiliza cuando el compilador
detecta el comienzo de un bloque o mdulo en el cual
se pueden declarar identificadores locales o
automticos. La operacin complementaria reset, se
utiliza cuando se detecta el final del bloque o mdulo.

OPERACIONES CON LA TS
En resumen, las operaciones que debern ejecutarse sobre la tabla de smbolos durante el proceso de
compilacin sern las siguientes:
Bsqueda/Consulta: Es la operacin que ms se repite en todas las fases, a fin de comprobar si un
smbolo ya existe o ha de insertarse como nuevo, encontrar los atributos asociados a un smbolo para
leerlos o modificarlos o borrar un smbolo de la tabla. Las otras tres operaciones normalmente
siempre implican una bsqueda previa.
Actualizacin: En los compiladores de una sola pasada la fase de anlisis lxico se encarga de crear
la tabla de smbolos e introducir en ella los identificadores, pero la asociacin de la mayora de los
atributos queda en manos del anlisis semntico, que debe localizar cada smbolo y actualizarlo.
Insercin: Una vez creada la tabla de smbolos hay que introducir en ella las parejas (identificador,
atributos) a medida que se analiza el cdigo fuente, tarea de la que se ocupa el analizador lxico o el
semntico, dependiendo de los casos. Segn el tipo de lenguaje es posible que en la tabla existan
varios smbolos con un mismo identificador pero con distintos atributos.
Borrado: Se produce cuando un smbolo queda fuera de mbito y, por tanto, deja de existir.

ESTRUCTURAS DE DATOS
SUBYACENTES
Lo fundamental a la hora de decidirse sobre la estructura de datos subyacente
que se emplear para mantener la tabla de smbolos ser:
El tipo de lenguaje a procesar porque de ello depender que se tenga que
trabajar con claves duplicadas que tendrn asociado un mbito o nivel.
La eficiencia en la bsqueda de claves, al ser sta la operacin que se
ejecuta con mayor frecuencia sobre la tabla de smbolos.

ESTRUCTURAS DE DATOS
SUBYACENTES
Listas o Tablas sin Orden
Una de las estructuras de datos ms sencillas que pueden utilizarse es una lista o una tabla (vector) en la que no
se mantiene orden, de manera que las operaciones pueden ejecutarse con los siguientes rdenes de eficiencia:

ESTRUCTURAS DE DATOS
SUBYACENTES
Listas o Tablas con Orden
En lugar de usar listas o vectores sin orden, podra utilizarse la clave para mantener los
elementos ordenados a fin de mejorar la eficiencia en la bsqueda de smbolos. La existencia
de orden permitira utilizar un algoritmo de bsqueda dicotmica o binaria, cuyo orden de
eficiencia es logartmico: O (log n). Puesto que la bsqueda es una operacin previa a todas las
dems, esta mejora influira globalmente en la gestin de la tabla de smbolos.

ESTRUCTURAS DE DATOS
SUBYACENTES
rboles Binarios
Se trata de una estructura con una eficiencia aceptable para las distintas operaciones que se necesitan
siempre que se mantenga equilibrado, ya que de lo contrario pueden terminar convirtindose en una
lista y la bsqueda sera secuencial. Los ms apropiados seran los rboles AVL o los rboles rojo - negro.

El tiempo de bsqueda en un rbol perfectamente


equilibrado siempre es logartmico.
El resto de las operaciones se efectan prcticamente
en el mismo orden de eficiencia.
Al igual que las listas, ordenadas y sin ordenar, un
rbol puede crecer dinmicamente.
La clave de cada nodo del rbol sera el identificador
de un smbolo, pudiendo mantenerse el conjunto de
atributos en la propia estructura de rbol o bien en
una tabla independiente

ESTRUCTURAS DE DATOS
SUBYACENTES
Tablas Hash
Las tcnicas de hashing hacen posible mantener tablas de datos con acceso por clave con un orden de
eficiencia terico de O (1) para todas las operaciones, lo que les hace ideales para el mantenimiento de una
tabla de smbolos. Ese orden de eficiencia terico se alcanzar en mayor o menor medida dependiendo del
algoritmo de hashing que se emplee y de que ste resulte adecuado para el tipo de claves utilizadas.

El uso de una tabla hash resultar mucho ms


eficiente a la hora de realizar bsquedas en la tabla
de smbolos, as como a la hora de insertar,
actualizar o borrar.
El tiempo no depender del tamao de la tabla, es
decir, de lo grande que sea el programa a compilar,
sino que se mantendr aproximadamente constante.
Existen, no obstante, dos dificultades a superar: las
colisiones y el tamao de la tabla hash.

ESTRUCTURAS DE DATOS
SUBYACENTES
Tablas Locales
La tabla de smbolos local de una clase o de cualquier otra estructura de datos compleja, como
puede ser un registro en Pascal, se genera en el momento en que se analiza la definicin de ese
nuevo tipo de dato. Al utilizar la notacin objeto.identificador (o equivalente segn el lenguaje) el
compilador debe localizar el identificador no en la tabla de smbolos general, sino en la tabla local
que corresponde al tipo de ese objeto.

En un lenguaje orientado a objetos actual, con


atributos de visibilidad, mtodos y otros elementos
como miembros, las tablas de smbolos locales
pueden llegar a ser tan complejas como las de un
programa completo, por lo que se recurrira a las
mismas estructuras de datos y algoritmos que ya se
han mencionado en apartados previos para
gestionar la tabla de smbolos asociada.

CONTENIDO DE LA TS
Antes de que se inicie la primera fase de la compilacin, el compilador puede
cargar la tabla de smbolos con algunos elementos que resultan de utilidad
durante el anlisis lxico y la generacin de cdigo. Algunas posibilidades son:
Palabras reservadas
Si el lenguaje para el que
se escribe el compilador
cuenta con palabras
reservadas, su inclusin
en la tabla de smbolos
permitir al analizador
lxico identificarlas y
facilitar al sintctico los
token correspondientes,
al tiempo que se impide
su redefinicin.

Constantes
predefinidas
Un compilador especfico
para un lenguaje
cientfico, por poner un
ejemplo, podra agregar a
la tabla de smbolos una
serie de constantes de
utilidad (PI, velocidad de
la luz, nmero de
Avogadro, etc.) de forma
que estuviesen
disponibles durante toda
la compilacin.

Tipos de datos
Los identificadores que
representan a los tipos
de datos bsicos del
lenguaje, los intrnsecos,
tambin pueden formar
parte del contenido
inicial de la tabla de
smbolos.

MTODOS
USADO POR
LA TABLA DE
SMBOLOS

MTODO DE LA DIVISIN
Esta funcin tiene la propiedad de preservar la
distribucin uniforme de las claves en el espacio
de direcciones.
Para un divisor m se define como: H(x) = (x mod
m) + 1
Se recomienda que m sea un nmero primo. Debe
evitarse que m sea una potencia de 2, pues en
este caso la hiptesis de que todas las claves son
igualmente probables es errnea.
Por ejemplo, las claves 2000, 2001, 2002, ,
2007 se asignan a las direcciones 82, 83,84, ,
92 con un valor de m = 101.

MTODOS HASH
Posiciones Alternativas
Cuando a varias direcciones diferentes se les
asigna la misma direccin se dice que ha ocurrido
una colisin. Al proceso de generar direcciones
alternativas se le llama manejo de colisiones o
resolucin de colisiones (collision resolution).

Mtodo hash cuadrtico.

Este mtodo se basa en multiplicar la clave por s


misma y extraer varios dgitos centrales que
constituyen la direccin.
Por ejemplo, sea la clave 113586.

Mtodo de Reduccin.
Consiste en partir la clave en grupos de dgitos
con el mismo nmero de dgitos excepto el ltimo
grupo que puede tener un nmero menor. Los
distintos grupos de dgitos se suman excepto el
ltimo, pudindose dar la vuelta al orden de los
dgitos.

Mtodo dependiente de
la Longitud.

Utiliza la longitud del nombre de la variable en


conjunto con alguna parte del nombre para determinar
una direccin de la tabla directamente. En otros casos
se calcula una clave intermedia que puede usar.

MANEJO DE COLISIONES
Es el suceso que se produce cuando se asignan dos
claves a la misma direccin. Cundo ocurre esto se
calcula una direccin alternativa para la segunda
clave, llamndose a este proceso manejo de
colisiones.
Las dos tcnicas ms utilizadas para el manejo de
colisiones son:
Direccionamiento vaco o hash cerrado
Encadenamiento directo o hash abierto

Direccionamiento vaco o
hash cerrado
Consiste en buscar en otros lugares de la tabla hasta que se
encuentre la variable buscada (caso de operacin de bsqueda) o
se llegue a un lugar vaco (en el caso de operacin de insercin
significa que no existe y se puede insertar, en el caso de bsqueda
se termina la operacin infructuosamente).
La forma de buscar otros lugares de la tabla puede hacerse por
medio de varios mtodos.

Inspeccin lineal
Consiste en mirar el lugar siempre el siguiente
lugar de la tabla hasta encontrar la variable
buscada o una posicin vaca. Cuando se llega al
final de la tabla se pasa al primer lugar de la tabla
y se contina buscando. Si se llega al lugar de
partida sin encontrar la variable buscada
entonces no est en la tabla. Si no se encuentra
espacio para introducirla es que la tabla est
llena. La desventaja de que los elementos tienden
a agruparse alrededor de las claves primarias
(claves que han sido insertadas sin colisionar).

Inspeccin Aleatoria
Consiste en generar posiciones aleatorias en vez
de las posiciones ordenadas que se generaban en
la inspeccin lineal. Se genera m posiciones
aleatorias entre 1 y m. La tabla se considera
completa cuando se repite el nmero generado.
Ntese que la
generacin es cclica.
R(y) = (y + c) mod n, para todo c y m PESI
Dnde:
y es la direccin inicial generada por la funcin
hash.
c es una constante.
m es el nmero de registros de la tabla.
Supngase c = 7, m = 11 e y = 3 en un momento
dado, la secuencia generada es la siguiente:
10 6 2 9 5 1 8 4 0 7 3

ENCADENAMIENTO
DIRECTO O HASH ABIERTO
Este mtodo enlaza todos los identificadores que
tienen el mismo ndice primario H(k) en forma de
lista. Es decir, se resuelven las colisiones
utilizando una lista encadenada que une todos los
identificadores
que
tienen
colisin.
La
implementacin de la lista puede ser en forma
dinmica o por medio de otra tabla que se llama
rea de desbordamiento (overflow area).

ENCADENAMIENTO DIRECTO O
HASH ABIERTO.
Encadenamiento directo con tabla
de desbordamiento

ENCADENAMIENTO DIRECTO O
HASH ABIERTO.
Encadenamiento directo con lista
enlazada dinmicamente.

Ejemplos

Ejemplos

Ejemplos

GESTION 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,

Un buen compilador:

Debe responder los errores en un programa


fuente.

Debe ser capaz de generar mensajes de


error
significativos
y
reanudar
la
compilacin despus de cada error.

Un compilador que se detenga cuando


encuentre el primer error no es muy eficaz.

No
demorar
significativamente
el
procesamiento de los programas correctos

Necesitar una clase ligeramente diferente


de manejo de errores.
Y, por lo tanto, un Manejador de Errores debe contener operaciones
diferentes, cada una apropiada para una fase y situacin especfica. !

Tipos de Errores

ERRORES LXICOS

Los errores lxicos se detectan cuando el analizador lxico intenta reconocer


componentes lxicos en el cdigo fuente.
ERRORES SINTCTICOS
Un error de sintaxis se detecta cuando el analizador sintctico espera un
smbolo
que no corresponde al que se acaba de leer. Los analizadores sintcticos ascendente y
descendente tienen la ventaja de que pueden detectar
errores
sintcticos lo ms
pronto posible, es decir, se genera un mensaje de error en
cuanto el smbolo analizado
no sigue la secuencia de los smbolos analizados hasta ese momento.
ERRORES SEMNTICOS
La estructura est bien pero hay errores de significado
ERRORES LGICOS
Los comete el programador

TRATAMIENTO DE LOS ERRORES LEXICOS

Un traductor debe adoptar alguna estrategia para detectar, informar y recuperarse para
seguir analizando hasta el final
Las respuestas ante el error pueden ser:

Inaceptables: Provocadas por fallos del traductor, entrada en lazos infinitos, producir
resultados errneos, y detectar slo el primer error y detenerse.

Aceptables: Evitar la avalancha de errores (mala recuperacin) y, aunque ms


complejo, informar y reparar el error de forma automtica. La conducta de un
Analizador de Lxico es el de un Autmata finito o scanner.

Deteccin del error: : El analizador de Lxico detecta un error cuando no existe


transicin desde el estado que se encuentra con el smbolo de la entrada. El smbolo en
la entrada no es el esperado

TRATAMIENTO DE LOS ERRORES LEXICOS

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 invalido (@,$,",>,...), que no pertenece al
vocabulario del lenguaje de programacin, al escribir mal un identificador, palabra
reservada u operador.

Errores lxicos tpicos son:


1. Nombre ilegales de identificadores: Un nombre contiene caracteres invlidos.
2. Nmeros incorrectos:
Un numero contiene caracteres invlidos o no est formado
correctamente, por ejemplo 3,14 en vez de 3.14 o 0.3.14.
3. Errores de ortografa en palabras reservadas: Caracteres omitidos, adicionales o
cambiados de sitio, por ejemplo la
palabra while en vez de hwile.
4. Fin de archivo:

Se detecta un fin de archivo a la mitad de un componente lxico.

RECUPERACION ANTE LOS ERRORES LEXICOS


Se traduce en la generacin de un error de sintaxis que ser 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.
Ejemplo:

Si se sabe que el siguiente componente lexico es una palabra reservada


(en la gramtica esperamos una palabra reservada) es posible corregir la
palabra mal escrita. - si se ha escrito hwile en vez de while o fi en vez de
if, intercambiando caracteres adyacentes.

TRATAMIENTO DE LOS ERRORES SINTTICOS

Al producirse un error el compilador debe ser capaz de informar del error y seguir
compilando. (Ideal)

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:
o Indicar los errores de forma clara y precisa
o Aclarar el tipo de error y su localizacin.
o Recuperarse del error, para poder seguir examinando la entrada.
o No ralentizar significativamente la compilacin.

Con esto se consigue:


Simplificar la estructura del compilador.
-Mejorar la respuesta ante los errores.

TRATAMIENTO DE LOS ERRORES SINTTICOS


o Tenemos varias estrategias para corregir errores, una vez detectados:

o Ignorar el problema (Panicmode)

Consiste en ignorar el resto de la entrada hasta llegar a una


condicin de seguridad. Una condicin tal se produce cuando nos
encontramos un token especial (por ejemplo un ; o un END). A
partir de este punto se sigue analizando normalmente.

TRATAMIENTO DE LOS ERRORES SINTTICOS


o Recuperacin a nivel de frase

o Intenta recuperar el error una vez descubierto. En el caso anterior, por ejemplo,
podra haber sido lo suficientemente inteligente como para insertar el token ;.
Hay que tener cuidado con este mtodo, pues puede dar lugar a recuperaciones
infinitas.

o Correccin Global

o Este mtodo trata por todos los medios de obtener un rbol sintctico para una
secuencia de tokens.
o Si hay algn error y la secuencia no se puede reconocer, entonces este mtodo
deduce una secuencia de tokens sintcticamente correcta lo ms parecida a la
original y genera el rbol para dicha secuencia.

TRATAMIENTO DE LOS ERRORES SEMANTICOS


o

COMPROBACIN DE TIPOS

o Como mnimo, ante un error, un comprobador de tipos debe informar de la


naturaleza y posicin del error y recuperarse para continuar con la comprobacin
del resto del programa a analizar.
o Operaciones a tener en cuenta en una comprobacin de tipos:
- Conversin de tipos: A veces es necesario transformar el tipo de una expresin
para utilizar correctamente un operador o para pasar de forma adecuada un
parmetro a una funcin.
- Coercin: Es una conversin de tipos que realiza de forma implcita el propio
compilador. Si es el programador el que realiza la conversin se tratar entonces de
una conversin explicita
- Sobrecarga de operadores: La sobrecarga se resuelve determinando el tipo de cada
una de las expresiones intervinientes en la sobrecarga.

TRATAMIENTO DE LOS ERRORES SEMANTICOS


o

ERRORES EN LA COMPROBACION DE TIPOS

Operadores Incompatibles

Flujo de Control

Una parte realmente


importante
interacta con todas
las
fases
de
compilacin,
es
conveniente un buen
manejo de errores, y
que el compilador
detecte todos
los
errores que tiene el
programa,
al
encontrar un error
debe
seguir
compilando si existe
El gestor de la tabla
ms de un error
de smbolos interacta
presentarlos
al
con cada una de las
usuario
y
no
fases del compilador,
detenerse
en
el
CMO INTERACTA O QUE RELACIN
EXITE?
consultando,
primero
que
aadiendo
y
encuentre.
Ambos se complementan,
las fases de compilacin y especialmente las
fases de anlisis usan
modificando
su
laTabla de Smbolosy elManejador de Errores, justamente para comparar el archivo de
informacin.
entrada y verificar su validez.
Estructura
que
contiene los siguientes
atributos del lenguaje:
el
nombre,
tipo,
direccin
de
almacenamiento
y
dimensin
de
una
variable
(algunos
puedes
obviarse
o
agregarse otros segn
la
necesidad
del
desarrollador).

CONCLUSIONES:

Una tabla de smbolos es una pieza importante del proceso de compilacin, puesto que en

ella se guarda la informacin de todos los objetos definidos durante el parseo de la


entrada.
Son varias las formas que se puede implementar una tabla de smbolos, gracias a que es

una estructura de datos.


La tabla de smbolos est ntimamente relacionada en todo el proceso de compilacin.

You might also like