Está en la página 1de 15

INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS

INGENIERÍA EN SISTEMAS COMPUTACIONALES


LENGUAJES Y AUTÓMATAS II
REPORTE DE PRÁCTICAS/TAREAS
Practica/Tarea: 9
NOMBRE: Martin Lara Rueda Fecha: 11/09/2019
UNIDAD: 1 Análisis semántico Grupo: 7cs

DESCRIPCIÓN DEL PROBLEMA


Desarrollar los siguientes temas:
1.6 Generación de la tabla de símbolo y tabla de direcciones.
Realizar una investigación documental que incluya lo siguiente:
* Introducción
* Definición de tabla de símbolos (3)
* Definición de tabla de direcciones (3)
* Generalidades / Terminologías
* Componentes
* Esquemas/diagramas
* Ejemplos 2 por cada tipo de tablas
* Referencias

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Definición de tabla de símbolos
1.- Una tabla de símbolos 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 cada 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.
Una implementación común de una tabla de símbolos puede ser una tabla hash, la
cual será mantenida a lo largo de todas las fases del proceso de compilación de
ticses.
Puede tratarse como una estructura transitoria o volátil, que sea utilizada
únicamente en el proceso de traducción de un lenguaje de programación, para luego
ser descartada, o integrada en la salida del proceso de compilación para una
explotación posterior, como puede ser por ejemplo, durante una sesión de
depuración, o como recurso para obtener un informe de diagnóstico durante o
después la ejecución de un programa.
Los símbolos en la tabla de símbolos pueden referirse a constantes, a funciones o
a tipos de datos en el código fuente de un programa. La tabla de símbolos forma
parte de cada fichero que contiene el código objeto durante el enlazado o linking de
los diferentes ficheros; recae en la responsabilidad del linker o enlazador resolver
cualquier referencia no resuelta.

Estructura De La Tabla De Símbolos


A. Lógica: viene determinada por:
· El tipo de ámbito (estático o dinámico)
· Los mecanismos de ámbito del lenguaje:
Procedimientos, bloques, herencia, módulos, espacios de nombres, registros,
witch,….
· Si se da más de una pasada.
· Compilación separada: ficheros con tablas.
B. Implementación física: más eficiente suele ser la de una tabla de hash, asociada
a pila de ámbitos activos.
Truco: mover (insertar, al menos) el elemento actual a la cabeza de la lista.
C. Las ristras: (identificadores, constantes) pueden ir en lista(s) aparte.
Referencias; https://es.wikipedia.org/wiki/Tabla_de_símbolos_(compilador)

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Definición de tabla de símbolos
2.- Una tabla de símbolos es la estructura de datos que permite almacenar
información semántica, es decir en ella se encuentra el significado asociado a las
estructuras formales (sintaxis) del lenguaje.
Su objetivo es delimitar el contexto de un conjunto de frases o instrucciones de un
lenguaje libre de contexto, es decir que los lenguajes representados por las
variables se describen recursivamente en términos de otros lenguajes o de símbolos
primitivos llamados terminales y las reglas que describen el lenguaje asociado con
cada variable se llaman producciones.
Algunas de las utilidades de la tabla de símbolos son:
 Simplifica el análisis sintáctico
 Ayudan en las comprobaciones semánticas
 Y en la generación de código.
El contenido de la tabla de símbolos es de dos tipos: el propio símbolo y los atributos
necesarios para definir el símbolo a nivel semántico y de generación de código, los
atributos dependen a nivel general si:
 Del tipo de gestión de memoria
 El lenguaje esta, o no, estructurado en bloques
 El símbolo es, o no, parámetros de un procedimiento o función
CONSTRUCCION DE LA TABLA DE SIMBOLOS
1. El analizador léxico deberá:
 Insertar los símbolos detectados en la tabla de símbolos
 Crear la tabla de símbolos parcialmente
 Señalar la línea del programa fuente en donde aparecen
2. El analizador semántico:
 Añadir los tipos, si procede, a los símbolos que aparecen en la tabla de
símbolos.
OPERACIONES SOBRE LA TABLA DE SIMBOLOS
1. Insertar
2. Consultar
3. Modificar (añadir atributos nuevos).

Referencias; http://gaferz.blogspot.com/2013/10/crear-tabla-de-simbolos-y-de-
direcciones_18.html

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Definición de tabla de símbolos
3.- Las tablas de símbolos (también llamadas tablas de identificadores y tablas de
nombres), realizan dos importantes funciones en el proceso de traducción: verificar
que la semántica sea correcta y ayudar en la generación apropiada de código.
Ambas funciones se realizan insertando o recuperando desde la tabla de símbolos
los atributos de las variables usadas en el programa fuente. Estos atributos, tales
como: el nombre, tipo, dirección de almacenamiento y dimensión de una variable,
usualmente se encuentran explícitamente en las declaraciones o más
implícitamente a través del contexto en que aparecen los nombres de variables en
el programa.
Una de las estructuras de datos que se encuentran relacionadas con las fases del
proceso de compilación es la tabla de símbolos, la cual tiene como propósito
registrar información que se comparte entre varias etapas y que permite administrar
los recursos asociados a las entidades que manipulará el programa. La tabla de
símbolos tiene típicamente la siguiente estructura:
Una tabla de símbolos puede conceptualizarse como una serie de renglones, cada
uno de los cuales contiene una lista de valores de atributos que son asociados con
una variable en particular. Las clases de los atributos que aparecen en una tabla de
símbolos dependen en algún grado de la naturaleza del lenguaje de programación
para el cual se escribe el compilador.
Por ejemplo, un lenguaje puede ser sin tipos, y por lo tanto el atributo tipo no
necesita aparecer en la tabla. Similarmente, la organización de la tabla de símbolos
variará dependiendo de las limitaciones de memoria y tiempo de acceso.

Referencias; https://www.coursehero.com/file/p60moq8/16-Generación-de-la-tabla-
de-símbolo-y-de-direcciones-Las-tablas-de-símbolos/

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Ejemplo;
TABLA DE SIMBOLOS

EJEMPLO DE UN PROGRAMA:
import java.io.*;

public class cualquier_numerotabla

public static void main(String args[]){

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(isr);

int z;

int n;

int y=1;

int s1=0;

try{

System.out.println("Dar numero a la tabla a calcular");

s1=Integer.parseInt(br.readLine());

catch (Exception e)

e.printStackTrace();

for (n=1;n<=10;n++)

z=s1*y;

System.out.println(s1+"*"+y+"="+z);

y=y+1;

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Definición de tabla de direcciones

1.- Los switches emplean direcciones MAC para dirigir las comunicaciones de red a través
de su estructura al puerto correspondiente hasta el nodo de destino. La estructura del switch
son los circuitos integrados y la programación de máquina adjunta que permite controlar las
rutas de datos a través del switch. El switch debe primero saber qué nodos existen en cada
uno de sus puertos para poder definir cuál será el puerto que utilizará para transmitir una
trama unicast.
El switch determina cómo manejar las tramas de datos entrantes mediante una tabla de
direcciones MAC. El switch genera su tabla de direcciones MAC grabando las direcciones
MAC de los nodos que se encuentran conectados en cada uno de sus puertos. Una vez que
la dirección MAC de un nodo específico en un puerto determinado queda registrada en la
tabla de direcciones, el switch ya sabe enviar el tráfico destinado a ese nodo específico
desde el puerto asignado a dicho nodo para posteriores transmisiones.
Cuando un switch recibe una trama de datos entrantes y la dirección MAC de destino no
figura en la tabla, éste reenvía la trama a todos los puertos excepto al que la recibió en primer
lugar. Cuando el nodo de destino responde, el switch registra la dirección MAC de éste en la
tabla de direcciones del campo dirección de origen de la trama. En las redes que cuentan
con varios switches interconectados, las tablas de direcciones MAC registran varias
direcciones MAC para los puertos que conectan los switches que reflejan los nodos de
destino. Generalmente, los puertos de los switches que se utilizan para interconectar dos
switches cuentan con varias direcciones MAC registradas en la tabla de direcciones.
A continuación se describe este proceso:
Paso 1. El switch recibe una trama de broadcast de la PC1 en el Puerto 1.
Paso 2. El switch ingresa la dirección MAC de origen y el puerto del switch que
recibió la trama en la tabla de direcciones.
Paso 3. Dado que la dirección de destino es broadcast, el switch satura todos los
puertos enviando la trama, excepto el puerto que la recibió.
Paso 4. El dispositivo de destino responde al broadcast con una trama de unicast
dirigida a la PC1.
Paso 5. El switch introduce en la tabla de direcciones la dirección MAC de origen de
la PC2 y el número del puerto de switch que recibió la trama. En la tabla de
direcciones MAC pueden encontrarse la dirección de destino de la trama y su puerto
asociado.

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Paso 6. Ahora el switch puede enviar tramas entre los dispositivos de origen y
destino sin saturar el tráfico, ya que cuenta con entradas en la tabla de direcciones
que identifican a los puertos asociados.
Nota: en ocasiones, la tabla de direcciones MAC se denomina “tabla de memoria de
contenido direccionable” (CAM). Si bien el término “tabla CAM” es bastante común,
para el propósito de este curso la denominaremos “tabla de direcciones MAC”.

Referencias;
https://www.itesa.edu.mx/netacad/introduccion/course/module5/5.3.1.2/5.3.1.2.html

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Definición de tabla de direcciones
2.- Manera en que los switches crean y administran las tablas de direcciones MAC
Los switches examinan la dirección origen de las tramas que se reciben en los puertos para
aprender la dirección MAC de las estaciones de trabajo o las PC conectadas a éstos. Estas
direcciones MAC aprendidas se registran luego en una tabla de direcciones MAC. Las
tramas que tienen una dirección MAC destino, que se ha registrado en la tabla, se pueden
conmutar hacia la interfaz correcta.
El comando show mac-address-table se puede introducir en el modo EXEC privilegiado para
examinar las direcciones que un switch ha aprendido.

Gestión de la tabla de direcciones MAC.


Un switch aprende en forma dinámica y mantiene miles de direcciones MAC. Para preservar
la memoria y para una operación óptima del switch, las entradas aprendidas se pueden
descartar de la tabla de direcciones MAC. Es posible que se hayan eliminado máquinas de
un puerto, se hayan apagado o trasladado a otro puerto en el mismo switch o en un switch
diferente. Esto puede provocar confusión al momento de enviar las tramas. Por todas estas
razones, si no se ven tramas con una dirección aprendida anteriormente, la entrada de
direcciones MAC se descarta automáticamente o expiran después de 300 segundos.
En lugar de esperar que una entrada dinámica expire, los administradores de red pueden
utilizar el comando clear mac-address-table en el modo EXEC privilegiado.

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Las entradas de direcciones MAC configuradas por los administradores de red también se
pueden eliminar con este comando. Este método para borrar entradas de tabla permite
eliminar de forma inmediata las direcciones no válidas.

Referencias;
https://cursos.clavijero.edu.mx/cursos/069_cIII/modulo3/contenidos/tema3.2.3.html?opc=1

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Definición de tabla de direcciones
3.- El protocolo de resolución de direcciones (ARP) se utiliza en las comunicaciones internas
de una red. Es decir, cuando dos dispositivos conectados a la misma red quieren
intercambiar información. Veamos qué es, para qué sirve y sus variaciones.
El Address Resolution Protocol es un protocolo de resolución de direcciones MAC. Dada
una dirección IP, el protocolo ARP descubre la dirección física o MAC asociada.
El objetivo del protocolo está claro, pero, ¿y su uso? ¿Por qué es necesario?
Uso
 Resolver la dirección física asociada a una dirección IP.
 Posibilitar el envío de datagramas entre diferentes redes TCP/IP.
 Evitar direcciones IP duplicadas dentro de la misma red (Gratuitous ARP).
 Posibilitar que equipos no tan avanzados tecnológicamente se puedan comunicar a
través de redes contemporáneas (Proxy ARP).
El protocolo ARP está documentado en su total extensión el RFC 826
Cómo funciona el protocolo ARP
 ARP Request: Tipo de mensaje ARP en el que se pide la dirección MAC del
destinatario, asociado a la dirección IP.
 ARP Reply: Respuesta del destinatario al ARP Request en el que entrega su
dirección física.
Entrega Directa
Si se quiere enviar un mensaje ARP a un destino de la misma red que del origen hablamos
de entrega directa.
Paso 1 – Inicio
PC1 quiere enviar un mensaje a PC2 pero no conoce su dirección MAC.

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Paso 2 – Generación del paquete ARP (ARP request)
PC1 envía un ARP Rquest a través de una trama en broadcast. Dicha solicitud la recibirán
todos los dispositivos de la red.

Paso 3 -Recepción y respuesta del paquete ARP (ARP reply)


El dispositivo preguntado es PC2. Los otros ordenadores de la red descartan el datagrama.
PC2 actualiza su tabla ARP con la MAC del emisor y le envía un ARP Reply (unicast,
solamente a él).

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Paso 4
Finalmente PC1 recibe el ARP reply actualiza su tabla ARP. ¡Ahora ya puede enviar tramas
a su vecino PC2!

Entrega Indirecta
Si se quiere enviar un mensaje ARP a un destino de una red diferente de la del origen
hablamos de entrega indirecta.
El procedimiento es exactamente el mismo, simplemente tendremos que repetir dicho
proceso en primera instancia con la interfaz del router que actúa como gateway o puerta de
enlace (tantas veces como redes tengamos que saltar (ARP 1 y ARP2)) hasta volvernos a
quedar como en el caso de la entrega directa (ARP 3).

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II

Las tramas no cruzan redes, por eso cada router tiene que desencapsular la trama recibida,
trasladar el datagrama IP a la interfaz conectada a la otra red, ejecutar el ARP, volverla a
encapsular en una nueva trama y enviarla.

Tabla ARP
Cada dispositivo tiene una tabla donde almacena las direcciones IP de las cuales conoce su
MAC tal que así.

Adicionalmente a cada binomio IP-MAC se le añade un temporizador que especifica el


tiempo que esta resolución permanecerá en la tabla (de 5 a 20 minutos) llamado tiempo de
vida.

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II

Si no se recibe una trama con la misma asociación @IP-@MAC durante un tiempo, la


resolución se borra.
Hacer esta asignación dinámica evita que se llenen las memorias caché de las tablas ARP
de los dispositivos. Generalmente con ajustar el temporizador es suficiente pero siempre se
puede limpiar la caché ARP.
Es importante tener en cuenta que las direcciones MAC son fijas, pero las IP pueden cambiar
de dispositivo, hecho que se tiene que ver reflejado en las tablas ARP. Para eso se usa el
Gratuitous ARP (visto más adelante).

Referencias; https://aprendederedes.com/redes/ip/arp-adress-resolution-protocol/

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza

También podría gustarte