SlideShare una empresa de Scribd logo
1 de 34
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERIA DE INDUSTRAL Y DE SISTEMAS
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
CURSO : COMPILADORES E INTERPRETES
TEMA : TABLA DE SIMBOLOS
CATEDRATICO : EDDIE CHRISTIAN MALCA VICENTE
ALUMNOS : ALVARES ROMERO, JOSUE
LEON MEZA, LILIAN ROSARIO
MARCELO GONZALES, DIEGO
El compilador traduce el código
escrito en un idioma a otro idioma
sin cambiar el sentido del
programa. También está previsto
que un compilador debe hacer el
código de destino eficaz y
optimizado en términos de tiempo
y espacio.
ESTRUCTURA DE UN COMPILADOR
TABLA DE SIMBOLOS
La tabla de símbolos es una importante
estructura de datos creada y mantenida por
los compiladores con el fin de almacenar
información acerca de la ocurrencia de
diversas entidades, tales como nombres de
variables, nombres de funciones, objetos,
clases, interfaces, etc. La tabla de símbolos se
utiliza en el análisis y la síntesis de un
compilador.
o Para almacenar los nombres de todas las entidades de
forma estructurada en un solo lugar.
o Para verificar si se ha declarado una variable.
o Comprobación del tipo de implemento, revisando si las
expresiones en el código fuente son semánticamente
correctas.
o Para determinar el alcance de un nombre (alcance de la
resolución).
o Una tabla de símbolos puede ser lineal o una tabla hash.
o Una tabla de símbolos se puede implementar en una de
las siguientes formas:
– Lineal (ordenadas o desordenadas).
– Árbol de búsqueda binaria.
– Tabla Hash.
NECESIDAD DE LA TABLA DE SIMBOLOS
Los compiladores utilizan una gramática libre de contexto
para describir la sintaxis de lenguaje y una fase de análisis
semántico posterior para restringir las sentencias que
“semánticamente” no pertenecen al lenguaje.
El analizador sintáctico se limita a comprobar, mediante
una gramática libre de contexto, que un identificador
forma parte de un expresión. Luego si la sentencia es
sintácticamente correcta, el analizador semántico deberá
verificar que el identificador empleado haya sido
declarado .
Para llevar a cabo esta tarea es necesaria la utilización de
una estructura de datos denominada tabla de símbolos.
Esta poseerá una entrada por cada identificador declarado
en el contexto que se está analizando.
EJEMPLO
Expresión:
Fuerza = Masa * Aceleración
<id,1> < = > <id,2> < * > <id,3>
ID TOKENS
1 Fuerza
2 Masa
3 Aceleración
TOKEN 1 : Fuerza
TOKEN 2 : =
TOKEN 3 : Masa
TOKEN 4 : *
TOKEN 5 : Aceleración
OBJETIVOS DE LA TABLA DE SIMBOLOS
Las TS son estructuras de datos que almacenan
toda la información de los identificadores del
lenguaje fuente.
Las misiones principales de la TS en el proceso
de traducción son:
 Colaborar con las comprobaciones
semánticas.
 Facilitar ayuda a la generación de código.
COMPLEJIDAD TEMPORAL DE LOS ALGORITMOS
La complejidad de los algoritmos se puede
estudiar estimando la dependencia entre el
tiempo que necesitan para procesar su
entrada y el tamaño de ésta. El mejor
rendimiento se obtiene si ambos son
independientes: el tiempo es constante.
Funciones hash
Se usará la siguiente notación para las funciones
hash: sea K el conjunto de claves, sean 11 y m
respectivamente las posiciones mínima y máxima
de la tabla, y sea N el conjunto de los números
naturales. Cualquier función hash h se define de
la siguiente forma:
Funciones hash inyectivas
Funciones hash pseudoaleatorias
1. Se tira un dado con m caras.
2. Se anota el valor de la cara
superior (i).
3. Se toma i como el valor hash
para la clave k: h(k)=i.
3. Se accede a la posición i de la
tabla y se le asigna la
información de la clave k.
1. Se tira un dado con m caras.
2. Se anota el valor de la cara
superior (j)
3. Se define j como el valor hash
para la clave k: h(k)=j.
4. Se accede a la posición j de la
tabla y se recupera la
información almacenada en ella.
Funciones hash uniformes
Funciones
Algunos valores de la función hash de
multiplicación que utiliza Φ=∏y m=25. Se
resaltan las colisiones.
Funciones hash de división
- m es el valor máximo de posición dentro de la tabla. Se le
exige que sea primo.
Algunos valores de la función hash de división, para
m=7. Se resaltan las colisiones.
Otras funciones hash
Esta función hash es un algoritmo iterativo que calcula un valor
auxiliar (hi) entre 0 y la longitud m de la clave id. El valor final h(id)
se obtiene a partir de alguno de los bits del valor m-ésimo (hm).
• k es una constante deducida experimentalmente.
• n es el tamaño de la tabla, deducido con k experimentalmente.
• bits(x,j) es una función que obtiene los j bits menos significativos
del entero x.
• ci es el código ASCII del carácter i-ésimo de id
Factor de carga
Un concepto muy importante en el estudio de la
eficiencia es el factor de carga. Dada una tabla hash con
espacio para m claves, en la que ya se han insertado n, se
llama factor de carga y se representa mediante la letra λ,
al cociente entre n y m.
Solución de las colisiones
Puesto que se van a usar funciones hash que permiten colisiones, es
necesario articular mecanismos para reaccionar frente a éstas. Aunque
son muchas las alternativas posibles, en las siguientes secciones se
explicarán algunas de ellas con detalle.
Hash con direccionamiento abierto
Sondeo lineal
Posible estado de una tabla hash con direccionamiento abierto y sondeo
lineal. Hay tres grupos de claves que colisionan, con tres, diez y nueve
claves, respectivamente. La primera posición de cada grupo (por la
izquierda) es la asignada por la función hash. Obsérvese que el último
grupo continúa en las primeras posiciones de la tabla.
Factor de Carga Rendimiento
HASH CON ENCADENAMIENTO
• Usa listas para contener las claves que
colisionan.
• Para tener acceso a los datos de las claves, se
accede a la posición de colisión y luego se
redirige a un nuevo vector donde se
almacenan todos los valores de las llaves.
• El proceso de creación de nuevos vectores se
puede realizar tantas veces como la limitación
de la memoria del CPU se lo permita
TABLAS DE SÍMBOLOS PARA LENGUAJES
CON ESTRUCTURAS DE BLOQUES
Hasta el momento solo se ha tratado con
datos simples, pero también existen las
estructuras de datos como procedimientos o
funciones.
Existen 2 métodos principales para poder
manejar estructuras en una tabla hash.
USO DE UNA TABLA POR ÁMBITO
Este método consiste en usar una
tabla de Hash para cada estructura
que se defina en el código, existen 2
formas de ejecutar este método.
COMPILADORES DE UN PASO
– Se utiliza una pila para almacenar las estructuras.
– Cuando se abre la estructura se sitúa en la parte superior
a la estructura ya abierta (si existe).
– Una vez se cierra la estructura se ejecuta una instrucción
pop donde se retira el bloque cerrado de la pila.
– Lo más simple en este método es la inserción.
– La complejidad reside en la búsqueda, si no se encuentra
el dato, se deberá explorar todas las tablas.
COMPILADORES DE MÁS DE UN PASO
Este método es igual al anterior, pero se
diferencian en que las estructuras una
vez cerradas solo se marcan como
CERRADAS y no son expulsadas de la
pila, es así como se transforma la pila en
una lista de estructuras.
USO DE UNA SOLA TABLA PARA TODOS LOS ÁMBITOS
• Como su nombre lo dice hace uso de una sola
tabla para almacenar todas la estructuras
• Este método busca solucionar el problema
anterior que maximiza la cantidad de tablas,
ocupando mucha memoria
• Este método implica guardar información
adicional como :
– la identificación del bloque
– un apuntador hacia el bloque actual
– un apuntador hacia donde se guardan los
identificadores.

Más contenido relacionado

La actualidad más candente

Archivo secuencial-indexado
Archivo secuencial-indexadoArchivo secuencial-indexado
Archivo secuencial-indexadoAleizapata
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Organización lógica y física.
Organización lógica y física.Organización lógica y física.
Organización lógica y física.Lely
 
Investigación quinta unidad
Investigación quinta unidadInvestigación quinta unidad
Investigación quinta unidadJuan Anaya
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominioSCMU AQP
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del softwareTensor
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1jmpov441
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bisondanilopuente
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registrosMeztli Valeriano Orozco
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de softwareKola Real
 

La actualidad más candente (20)

Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Archivo secuencial-indexado
Archivo secuencial-indexadoArchivo secuencial-indexado
Archivo secuencial-indexado
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Organización lógica y física.
Organización lógica y física.Organización lógica y física.
Organización lógica y física.
 
Administrador de Tabla de Símbolos
Administrador de Tabla de SímbolosAdministrador de Tabla de Símbolos
Administrador de Tabla de Símbolos
 
Investigación quinta unidad
Investigación quinta unidadInvestigación quinta unidad
Investigación quinta unidad
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominio
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del software
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bison
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de software
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 

Similar a COMPILADORES-Tabla de Simbolos

Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Javier Alva
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
Tablas Hash Fash Vmaa
Tablas Hash Fash VmaaTablas Hash Fash Vmaa
Tablas Hash Fash Vmaavicomanuel
 
Introduccion a Matlab
Introduccion a MatlabIntroduccion a Matlab
Introduccion a MatlabOmar Yupanqui
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmosUNEG
 
T A B L A D E D I S P E R S I O N (Hash Table)
T A B L A  D E  D I S P E R S I O N (Hash Table)T A B L A  D E  D I S P E R S I O N (Hash Table)
T A B L A D E D I S P E R S I O N (Hash Table)Angie Suarez
 
Temas programacion java_2
Temas programacion java_2Temas programacion java_2
Temas programacion java_2Wally IG
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico maryr_
 

Similar a COMPILADORES-Tabla de Simbolos (20)

Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02Tabladesmbolos 101103230525-phpapp02
Tabladesmbolos 101103230525-phpapp02
 
Tabla simbolos
Tabla simbolosTabla simbolos
Tabla simbolos
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Tablas Hash Fash Vmaa
Tablas Hash Fash VmaaTablas Hash Fash Vmaa
Tablas Hash Fash Vmaa
 
Matlab
MatlabMatlab
Matlab
 
Introduccion a Matlab
Introduccion a MatlabIntroduccion a Matlab
Introduccion a Matlab
 
hashing.ppt
hashing.ppthashing.ppt
hashing.ppt
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
T A B L A D E D I S P E R S I O N (Hash Table)
T A B L A  D E  D I S P E R S I O N (Hash Table)T A B L A  D E  D I S P E R S I O N (Hash Table)
T A B L A D E D I S P E R S I O N (Hash Table)
 
Matlab2
Matlab2Matlab2
Matlab2
 
Matlab
MatlabMatlab
Matlab
 
Temas programacion java_2
Temas programacion java_2Temas programacion java_2
Temas programacion java_2
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
EXPOSICION HASH
EXPOSICION HASHEXPOSICION HASH
EXPOSICION HASH
 
4072954.ppt
4072954.ppt4072954.ppt
4072954.ppt
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Intro matlab msantos
Intro matlab msantosIntro matlab msantos
Intro matlab msantos
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 

Último

Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 

Último (20)

Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 

COMPILADORES-Tabla de Simbolos

  • 1. UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA DE INDUSTRAL Y DE SISTEMAS ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS CURSO : COMPILADORES E INTERPRETES TEMA : TABLA DE SIMBOLOS CATEDRATICO : EDDIE CHRISTIAN MALCA VICENTE ALUMNOS : ALVARES ROMERO, JOSUE LEON MEZA, LILIAN ROSARIO MARCELO GONZALES, DIEGO
  • 2.
  • 3.
  • 4.
  • 5. El compilador traduce el código escrito en un idioma a otro idioma sin cambiar el sentido del programa. También está previsto que un compilador debe hacer el código de destino eficaz y optimizado en términos de tiempo y espacio.
  • 6. ESTRUCTURA DE UN COMPILADOR
  • 7. TABLA DE SIMBOLOS La tabla de símbolos es una importante estructura de datos creada y mantenida por los compiladores con el fin de almacenar información acerca de la ocurrencia de diversas entidades, tales como nombres de variables, nombres de funciones, objetos, clases, interfaces, etc. La tabla de símbolos se utiliza en el análisis y la síntesis de un compilador.
  • 8. o Para almacenar los nombres de todas las entidades de forma estructurada en un solo lugar. o Para verificar si se ha declarado una variable. o Comprobación del tipo de implemento, revisando si las expresiones en el código fuente son semánticamente correctas. o Para determinar el alcance de un nombre (alcance de la resolución). o Una tabla de símbolos puede ser lineal o una tabla hash. o Una tabla de símbolos se puede implementar en una de las siguientes formas: – Lineal (ordenadas o desordenadas). – Árbol de búsqueda binaria. – Tabla Hash.
  • 9. NECESIDAD DE LA TABLA DE SIMBOLOS Los compiladores utilizan una gramática libre de contexto para describir la sintaxis de lenguaje y una fase de análisis semántico posterior para restringir las sentencias que “semánticamente” no pertenecen al lenguaje. El analizador sintáctico se limita a comprobar, mediante una gramática libre de contexto, que un identificador forma parte de un expresión. Luego si la sentencia es sintácticamente correcta, el analizador semántico deberá verificar que el identificador empleado haya sido declarado . Para llevar a cabo esta tarea es necesaria la utilización de una estructura de datos denominada tabla de símbolos. Esta poseerá una entrada por cada identificador declarado en el contexto que se está analizando.
  • 10. EJEMPLO Expresión: Fuerza = Masa * Aceleración <id,1> < = > <id,2> < * > <id,3> ID TOKENS 1 Fuerza 2 Masa 3 Aceleración TOKEN 1 : Fuerza TOKEN 2 : = TOKEN 3 : Masa TOKEN 4 : * TOKEN 5 : Aceleración
  • 11. OBJETIVOS DE LA TABLA DE SIMBOLOS Las TS son estructuras de datos que almacenan toda la información de los identificadores del lenguaje fuente. Las misiones principales de la TS en el proceso de traducción son:  Colaborar con las comprobaciones semánticas.  Facilitar ayuda a la generación de código.
  • 12. COMPLEJIDAD TEMPORAL DE LOS ALGORITMOS La complejidad de los algoritmos se puede estudiar estimando la dependencia entre el tiempo que necesitan para procesar su entrada y el tamaño de ésta. El mejor rendimiento se obtiene si ambos son independientes: el tiempo es constante.
  • 13.
  • 14. Funciones hash Se usará la siguiente notación para las funciones hash: sea K el conjunto de claves, sean 11 y m respectivamente las posiciones mínima y máxima de la tabla, y sea N el conjunto de los números naturales. Cualquier función hash h se define de la siguiente forma:
  • 16. Funciones hash pseudoaleatorias 1. Se tira un dado con m caras. 2. Se anota el valor de la cara superior (i). 3. Se toma i como el valor hash para la clave k: h(k)=i. 3. Se accede a la posición i de la tabla y se le asigna la información de la clave k. 1. Se tira un dado con m caras. 2. Se anota el valor de la cara superior (j) 3. Se define j como el valor hash para la clave k: h(k)=j. 4. Se accede a la posición j de la tabla y se recupera la información almacenada en ella.
  • 18. Algunos valores de la función hash de multiplicación que utiliza Φ=∏y m=25. Se resaltan las colisiones.
  • 19. Funciones hash de división - m es el valor máximo de posición dentro de la tabla. Se le exige que sea primo. Algunos valores de la función hash de división, para m=7. Se resaltan las colisiones.
  • 20. Otras funciones hash Esta función hash es un algoritmo iterativo que calcula un valor auxiliar (hi) entre 0 y la longitud m de la clave id. El valor final h(id) se obtiene a partir de alguno de los bits del valor m-ésimo (hm). • k es una constante deducida experimentalmente. • n es el tamaño de la tabla, deducido con k experimentalmente. • bits(x,j) es una función que obtiene los j bits menos significativos del entero x. • ci es el código ASCII del carácter i-ésimo de id
  • 21. Factor de carga Un concepto muy importante en el estudio de la eficiencia es el factor de carga. Dada una tabla hash con espacio para m claves, en la que ya se han insertado n, se llama factor de carga y se representa mediante la letra λ, al cociente entre n y m.
  • 22. Solución de las colisiones Puesto que se van a usar funciones hash que permiten colisiones, es necesario articular mecanismos para reaccionar frente a éstas. Aunque son muchas las alternativas posibles, en las siguientes secciones se explicarán algunas de ellas con detalle. Hash con direccionamiento abierto
  • 23.
  • 24. Sondeo lineal Posible estado de una tabla hash con direccionamiento abierto y sondeo lineal. Hay tres grupos de claves que colisionan, con tres, diez y nueve claves, respectivamente. La primera posición de cada grupo (por la izquierda) es la asignada por la función hash. Obsérvese que el último grupo continúa en las primeras posiciones de la tabla. Factor de Carga Rendimiento
  • 25. HASH CON ENCADENAMIENTO • Usa listas para contener las claves que colisionan. • Para tener acceso a los datos de las claves, se accede a la posición de colisión y luego se redirige a un nuevo vector donde se almacenan todos los valores de las llaves. • El proceso de creación de nuevos vectores se puede realizar tantas veces como la limitación de la memoria del CPU se lo permita
  • 26.
  • 27. TABLAS DE SÍMBOLOS PARA LENGUAJES CON ESTRUCTURAS DE BLOQUES Hasta el momento solo se ha tratado con datos simples, pero también existen las estructuras de datos como procedimientos o funciones. Existen 2 métodos principales para poder manejar estructuras en una tabla hash.
  • 28.
  • 29. USO DE UNA TABLA POR ÁMBITO Este método consiste en usar una tabla de Hash para cada estructura que se defina en el código, existen 2 formas de ejecutar este método.
  • 30. COMPILADORES DE UN PASO – Se utiliza una pila para almacenar las estructuras. – Cuando se abre la estructura se sitúa en la parte superior a la estructura ya abierta (si existe). – Una vez se cierra la estructura se ejecuta una instrucción pop donde se retira el bloque cerrado de la pila. – Lo más simple en este método es la inserción. – La complejidad reside en la búsqueda, si no se encuentra el dato, se deberá explorar todas las tablas.
  • 31.
  • 32. COMPILADORES DE MÁS DE UN PASO Este método es igual al anterior, pero se diferencian en que las estructuras una vez cerradas solo se marcan como CERRADAS y no son expulsadas de la pila, es así como se transforma la pila en una lista de estructuras.
  • 33.
  • 34. USO DE UNA SOLA TABLA PARA TODOS LOS ÁMBITOS • Como su nombre lo dice hace uso de una sola tabla para almacenar todas la estructuras • Este método busca solucionar el problema anterior que maximiza la cantidad de tablas, ocupando mucha memoria • Este método implica guardar información adicional como : – la identificación del bloque – un apuntador hacia el bloque actual – un apuntador hacia donde se guardan los identificadores.