Tipo de datos de matriz


En informática , un tipo de matriz es un tipo de datos que representa una colección de elementos ( valores o variables ), cada uno seleccionado por uno o más índices (claves de identificación) que se pueden calcular en tiempo de ejecución durante la ejecución del programa. Este tipo de colección suele denominarse variable de matriz, valor de matriz o simplemente matriz . [1] Por analogía con los conceptos matemáticos vector y matriz , los tipos de matriz con uno y dos índices a menudo se denominan tipo vectorial y tipo matricial ., respectivamente. De manera más general, un tipo de matriz multidimensional puede denominarse tipo de tensor . [2]

El soporte de lenguaje para los tipos de arreglos puede incluir ciertos tipos de datos de arreglos integrados , algunas construcciones sintácticas (constructores de tipos de arreglos ) que el programador puede usar para definir dichos tipos y declarar variables de arreglos, y una notación especial para indexar elementos de arreglos. [1] Por ejemplo, en el lenguaje de programación Pascal , la declaración type MyTable = array [1..4,1..2] of integerdefine un nuevo tipo de datos de matriz llamado MyTable. Luego, la declaración var A: MyTabledefine una variable Ade ese tipo, que es un agregado de ocho elementos, cada uno de los cuales es una variable entera identificada por dos índices. En el programa Pascal, esos elementos se denotan A[1,1], A[1,2], A[2,1], …, A[4,2]. [3]Las bibliotecas estándar del lenguaje suelen definir tipos de matrices especiales .

Las listas dinámicas también son más comunes y fáciles de implementar que las matrices dinámicas . Los tipos de matriz se distinguen de los tipos de registro principalmente porque permiten calcular los índices de los elementos en tiempo de ejecución , como en la asignación de Pascal A[I,J] := A[N-I,2*J]. Entre otras cosas, esta característica permite que una sola declaración iterativa procese arbitrariamente muchos elementos de una variable de matriz.

En contextos más teóricos, especialmente en teoría de tipos y en la descripción de algoritmos abstractos , los términos "matriz" y "tipo de matriz" a veces se refieren a un tipo de datos abstracto (ADT) también llamado matriz abstracta o pueden referirse a una matriz asociativa , un modelo matemático con las operaciones básicas y el comportamiento de un tipo de matriz típico en la mayoría de los lenguajes; básicamente, una colección de elementos que se seleccionan mediante índices calculados en tiempo de ejecución.

Según el idioma, los tipos de matriz pueden superponerse (o identificarse con) otros tipos de datos que describen agregados de valores, como listas y cadenas . Los tipos de matriz a menudo se implementan mediante estructuras de datos de matriz , pero a veces por otros medios, como tablas hash , listas vinculadas o árboles de búsqueda .

El lenguaje de programación Superplan de Heinz Rutishauser (1949-1951) incluía matrices multidimensionales. Sin embargo, Rutishauser, aunque describió cómo se debe construir un compilador para su lenguaje, no implementó uno.