En programación informática , un vector Iliffe , también conocido como pantalla , es una estructura de datos que se utiliza para implementar matrices multidimensionales . Un vector Iliffe para una matriz n- dimensional (donde n ≥ 2) consiste en un vector (o matriz unidimensional) de punteros a una matriz ( n - 1) dimensional. A menudo se utilizan para evitar la necesidad de costosas operaciones de multiplicación al realizar el cálculo de direcciones en un elemento de matriz. También se pueden utilizar para implementar matrices dentadas , como matrices triangulares , matrices triangularesy otros tipos de matrices de forma irregular. La estructura de datos lleva el nombre de John K. Iliffe .
Sus desventajas incluyen la necesidad de múltiples direcciones indirectas de puntero encadenado para acceder a un elemento, y el trabajo adicional requerido para determinar la siguiente fila en una matriz n- dimensional para permitir que un compilador optimizador la obtenga previamente. Ambos son una fuente de retrasos en sistemas donde la CPU es significativamente más rápida que la memoria principal.
El vector Iliffe para una matriz bidimensional es simplemente un vector de punteros a vectores de datos, es decir, el vector Iliffe representa las columnas de una matriz donde cada elemento de columna es un puntero a un vector de fila.
Matrices multidimensionales en lenguajes como Java , Python (listas multidimensionales), Ruby , Visual Basic .NET , Perl , PHP , JavaScript , Objective-C (cuando se usa NSArray, no una matriz de estilo C de fila principal ), Swift y Atlas Los códigos automáticos se implementan como vectores Iliffe. Los vectores Iliffe se utilizaron para implementar matrices multidimensionales dispersas en el producto OLAP Holos .
Los vectores iliffe se contrastan con los vectores dope en lenguajes como Fortran , que contienen los factores de zancada y los valores de compensación para los subíndices en cada dimensión.
Referencias
- John K. Iliffe (1961). "El uso del sistema Genie en cálculos numéricos". Revisión anual en programación automática . 2 : 25. doi : 10.1016 / S0066-4138 (61) 80002-5 .
Ver también
Otras lecturas
- "Capítulo 3: Asignaciones de estructura de datos" . Técnicas de compilación . Associates Technology Literature Applications Society . Consultado el 5 de mayo de 2015 .