Los arreglos asociativos son aquellos en los que en lugar de hacer uso de índices de números enteros se utilizan otros tipos de datos (usualmente caracteres, cadenas de caracteres, números reales, pero que sólo queda limitado por la implementación de éstos, es decir, salvo por alguna razón específica, pueden ser cualquier otro tipo de datos). Yo los conocí a través de AWK, pero son muy comunes en otros lenguajes, ya sea con este nombre o algún otro (como los diccionarios en Python).
Aunque la idea detrás de éstos tienen un antecedente común con las memorias asociativas, no son lo mismo. Al final ambas cosas, los arreglos asociativos y las memoria asociativas) buscan emular el comportamiento de la capacidad de almacenamiento del cerebro humano (nótese que no he escrito ni datos ni información, y si hubiera preferido escribir «recuerdos» pero creo que ese es tema de otro post).
Los arreglos asociativos son una implementación tecnológica simple. Las memorias asociativas son el siguiente paso, pero al final burdas implementaciones que seguramente parten de funciones hash para tratar de simular a la memoria biológica. Conceptualmente, en una memoria asociativa «los datos permiten almacenar a otros datos.»
La búsqueda por reproducir el funcionamiento de la capacidad de almacenamiento de la memoria biológica ha llevado a realizar implementaciones en hardware1, aunque es mucho más frecuente encontrar materializada esta idea mediante redes neuronales artificiales en software2.
Referencias
- Kai Hwang, Faye A. Briggs, «Arquitectura de Computadoras y Procesamiento Paralelo,» McGraw-Hill, 1988.
- Eduardo René Rodríguez Ávila, «3EBAM: Un Sistema de Memorias Asociativas Bidireccionales«, Tesis de Maestría, IPN, México, 1994.