fbpx
Wikipedia

Tabla de símbolos (compilador)

En informática, 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.

Tabla de símbolos en lenguaje C

Como ya se dijo en el esbozo, la tabla de símbolos es una estructura de datos que se crea en tiempo de traducción del programa fuente. Es como un diccionario variable, debe darle apoyo a la inserción, búsqueda y cancelación de nombres (identificadores) con sus atributos asociados, representando las vinculaciones con las declaraciones. Debe aclararse que no necesariamente deberá estar representada en una tabla como su nombre indica ya que también se emplean árboles, pilas , etc.

Los símbolos se guardan en la tabla con su nombre y una serie de atributos opcionales que dependerán del lenguaje y de los objetivos del procesador, este conjunto de atributos almacenados se denomina registro de la tabla de símbolos.

La siguiente representa una serie de atributos que no es necesaria para todos los compiladores, sin embargo cada uno de ellos se puede utilizar en la implementación de un compilador particular.

  • nombre del identificador.
  • dirección en tiempo de ejecución a partir del cual se almacenara el identificador si es una variable.
  • tipo del identificador. Si es una función, el tipo que devuelve la función.
  • número de dimensiones del array (arreglo), o número de miembros de una estructura o clase, o números de parámetros si se trata de una función.
  • tamaño máximo o rango de cada una de las dimensiones de los array, si tiene dimensión estática.
  • etc.

Operaciones con la Tabla de símbolos

En general en la Tabla de símbolos ( operadores ahora) se realizan dos operaciones: la inserción y la búsqueda.

En C la operación de inserción se realiza cuando se procesa una declaración.

Hay dos posibilidades: que la TS esté ordenada (o sea, nombres de variables por orden alfabético) o que no esté ordenada.

Si está ordenada, entonces la operación de inserción llama a un procedimiento de búsqueda para encontrar el lugar donde colocar los atributos del identificador a insertar, por lo que en este caso la inserción lleva tanto tiempo como la búsqueda. En cambio, si no está ordenada la TS, la inserción se simplifica mucho aunque se complica la búsqueda, pues debe examinar toda la tabla.

En la búsqueda, se detectan los identificadores que no hayan sido declarados previamente, emitiendo un mensaje de error.

ejemplo en lenguaje C: Undefined símbolo 'x', si es una variable que desea usarse pero no se declaró. 

En la inserción, se detectan identififcadores que ya han sido declarados previamente, emitiendo un mensaje de error

ejemplo en C: multiple declaration for 'x' si x ya estaba en TS. 

Analizador Sintáctico(Parser)

Sintaxis: El orden correcto de las palabras

 Ej. Programa Fuente: 34:= *x - 640; Analex: NUM ASIGN POR ID MENOS NUM PTOCOMA Parser: "Error Sintáctico" 

El Analizador semántico

Semántica: Significado de las frases.

Estando una frase del programa fuente ya analizada sintácticamente ("parseada") pasa al analizador semántico para verificar la intención del programador con esa frase: "Pasó por el parser y no presentó errores".

 Ejemplo: byte b; int v[3]; String s;//Error semántico b = 4000; //out of range s = 6000; //incompatible type's o "Type mismatch" v[8]= 12; // out of range 
  •   Datos: Q1890437

tabla, símbolos, compilador, este, artículo, sección, sobre, informática, necesita, wikificado, favor, edítalo, para, cumpla, convenciones, estilo, este, aviso, puesto, diciembre, 2010, informática, tabla, símbolos, estructura, datos, proceso, traducción, leng. Este articulo o seccion sobre informatica necesita ser wikificado por favor editalo para que cumpla con las convenciones de estilo Este aviso fue puesto el 12 de diciembre de 2010 En informatica una tabla de simbolos es una estructura de datos que usa el proceso de traduccion de un lenguaje de programacion por un compilador o un interprete donde cada simbolo en el codigo fuente de un programa esta asociado con informacion tal como la ubicacion el tipo de datos y el ambito de cada variable constante o procedimiento Una implementacion comun de una tabla de simbolos puede ser una tabla hash la cual sera mantenida a lo largo de todas las fases del proceso de compilacion de ticses Puede tratarse como una estructura transitoria o volatil que sea utilizada unicamente en el proceso de traduccion de un lenguaje de programacion para luego ser descartada o integrada en la salida del proceso de compilacion para una explotacion posterior como puede ser por ejemplo durante una sesion de depuracion o como recurso para obtener un informe de diagnostico durante o despues la ejecucion de un programa Los simbolos en la tabla de simbolos pueden referirse a constantes a funciones o a tipos de datos en el codigo fuente de un programa La tabla de simbolos forma parte de cada fichero que contiene el codigo objeto durante el enlazado o linking de los diferentes ficheros recae en la responsabilidad del linker o enlazador resolver cualquier referencia no resuelta Indice 1 Tabla de simbolos en lenguaje C 2 Operaciones con la Tabla de simbolos 3 Analizador Sintactico Parser 4 El Analizador semanticoTabla de simbolos en lenguaje C EditarComo ya se dijo en el esbozo la tabla de simbolos es una estructura de datos que se crea en tiempo de traduccion del programa fuente Es como un diccionario variable debe darle apoyo a la insercion busqueda y cancelacion de nombres identificadores con sus atributos asociados representando las vinculaciones con las declaraciones Debe aclararse que no necesariamente debera estar representada en una tabla como su nombre indica ya que tambien se emplean arboles pilas etc Los simbolos se guardan en la tabla con su nombre y una serie de atributos opcionales que dependeran del lenguaje y de los objetivos del procesador este conjunto de atributos almacenados se denomina registro de la tabla de simbolos La siguiente representa una serie de atributos que no es necesaria para todos los compiladores sin embargo cada uno de ellos se puede utilizar en la implementacion de un compilador particular nombre del identificador direccion en tiempo de ejecucion a partir del cual se almacenara el identificador si es una variable tipo del identificador Si es una funcion el tipo que devuelve la funcion numero de dimensiones del array arreglo o numero de miembros de una estructura o clase o numeros de parametros si se trata de una funcion tamano maximo o rango de cada una de las dimensiones de los array si tiene dimension estatica etc Operaciones con la Tabla de simbolos EditarEn general en la Tabla de simbolos operadores ahora se realizan dos operaciones la insercion y la busqueda En C la operacion de insercion se realiza cuando se procesa una declaracion Hay dos posibilidades que la TS este ordenada o sea nombres de variables por orden alfabetico o que no este ordenada Si esta ordenada entonces la operacion de insercion llama a un procedimiento de busqueda para encontrar el lugar donde colocar los atributos del identificador a insertar por lo que en este caso la insercion lleva tanto tiempo como la busqueda En cambio si no esta ordenada la TS la insercion se simplifica mucho aunque se complica la busqueda pues debe examinar toda la tabla En la busqueda se detectan los identificadores que no hayan sido declarados previamente emitiendo un mensaje de error ejemplo en lenguaje C Undefined simbolo x si es una variable que desea usarse pero no se declaro En la insercion se detectan identififcadores que ya han sido declarados previamente emitiendo un mensaje de error ejemplo en C multiple declaration for x si x ya estaba en TS Analizador Sintactico Parser EditarSintaxis El orden correcto de las palabras Ej Programa Fuente 34 x 640 Analex NUM ASIGN POR ID MENOS NUM PTOCOMA Parser Error Sintactico El Analizador semantico EditarSemantica Significado de las frases Estando una frase del programa fuente ya analizada sintacticamente parseada pasa al analizador semantico para verificar la intencion del programador con esa frase Paso por el parser y no presento errores Ejemplo byte b int v 3 String s Error semantico b 4000 out of range s 6000 incompatible type s o Type mismatch v 8 12 out of range Datos Q1890437Obtenido de https es wikipedia org w index php title Tabla de simbolos compilador amp oldid 134483265, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos