Next: 2.3.2 Variantes de la 
Up: 2.3 Asociación indirecta
 Previous: 2.3 Asociación indirecta
 
Para que esta estrategia sea aplicable debe diseñarse de modo que su consumo de memoria sea reducido.
El tiempo de procesamiento consumido en el mantenimiento de la representación de 
las operaciones realizadas sobre el texto debe mantenerse dentro de límites aceptables. Debido al elevado
número de componentes léxicos que potencialmente contendrá cada texto que será sometido a análisis,
del orden de decenas de miles, se debe de buscar una representación para la TTLT que cumpla los
siguientes requisitos:
-  Sea capaz de almacenar en memoria un elevado número de elementos, cada uno  
	de los cuales se encargará del almacenamiento de la información
	 relativa a un componente léxico.
 -  Tenga un carácter dinámico, es decir, no debe establecerse una limitación sobre
	el número máximo y mínimo de elementos que limiten la flexibilidad de la
	herramienta.
 -  Debido a las características del análisis incremental, debe también 
	optimizar la reutilización de la memoria liberada por los elementos que se correspondan con
	componentes léxicos eliminados.
 -  Proporcione un mecanismo de acceso eficiente a cada elemento mediante algún tipo de clave.
 
En LE-LISP disponemos de varias alternativas para implementar la TTLT:
-  Las listas, que por su propia naturaleza son extensibles  dinámicamente. Utilizando
	las funciones de manejo que modifican físicamente sus argumentos se mejora el uso que
	hacen de la memoria, evitando problemas con el garbage collector
. 
	Su principal inconveniente
	radica en el tiempo de acceso a los elementos: para acceder a un elemento dado de una lista hay que 
	recorrer la lista desde el principio hasta encontrarlo. Esta forma de acceso secuencial implica
	 además que no todos los componentes léxicos tiene un tiempo medio de acceso igual, sino que aquellos
	que estén situados al  principio de la lista dispondrán de un acceso extremadamente
	rápido mientras que aquellos situados cerca de la cola sufrirán un elevado retardo.
 -  Los vectores, que presentan como ventaja respecto a las listas la posibilidad de un acceso 
	directo a cada elemento. Sin embargo, su limitación radica en que su tamaño no puede
	 variar dinámicamente, por lo que no son aplicables en este caso. Una limitació 
	añadida reside en el hecho de que las implementaciones actuales de los vectores en
	LE-LISP tiene fijado un límite máximo de 32767.
 -  Las tablas hash tienen tamaño dinámico, manejan eficientemente el espacio de memoria
	y el tiempo de acceso a cada elemento es constante independientemente de su posición.
	Como ventaje añadida está que el formato de la clave de acceso
	puede ser fijado libremente por el programador, lo cual aporta un grado de
	flexibilidad del que no se dispone en el caso de las listas y los vectores.
 
La mejor alternativa consiste en utilizar tablas de hash
como estructura de almacenamiento global. Una vez que ha sido resuelto el problema 
de la TTLT surge otro relativo a la forma que van a tener sus elementos. En
efecto, mediante las tablas hash se consigue una TTLT flexible y eficiente
en el manejo de la memoria y del tiempo de acceso a sus elementos, pero su
eficiencia se verá seriamente limitada si los elementos que en ella se van a almacenar
se construyen de tal modo que consuman 
elevadas cantidades de memoria y retarden el acceso a la información que contienen.
 
 
 
  
 Next: 2.3.2 Variantes de la 
Up: 2.3 Asociación indirecta
 Previous: 2.3 Asociación indirecta
Miguel A. Alonso Pardo 
Thu Nov 20 16:47:01 CET 1997