CONCEPTO DE TIPOS DE DATOS







¿Qué es un tipo de datos?
Un tipo de datos es una convención para la codificación de información. Estas convenciones, q.v. , son necesarias porque las computadoras solamente procesan información de formato binario; a fin de cuentas se trata de dispositivos que admiten pulsos de tensión muy baja (unos pocos voltios) y frecuencia muy alta (típicamente, centenares de megahercios o algunos gigahercios). Es importante tener en cuenta que a definición de un tipo de datos, esto es, la definición del modo en que se va a representar una información mediante colecciones de unos y ceros, especifica el conjunto de informaciones que se puede representar internamente en el ordenador. Sólo será posible procesar informaciones representables en el ordenador, y es infinito en modo alguno, sino que antes bien presenta ciertas limitaciones bastantes fáciles de alcanzar. Por ejemplo, téngase en cuenta que los seres humano manejan frecuentemente números "reales", con un número infinito de decimales, mientras que las computadoras están limitadas (por el número finitos de bits de que consta la representación empleada) a un número finito de decimales. De hecho, es perfectamente posible que un número representable con un número finito de decimales en base 10 requiera un número infinito de decimales para codificarlo en base 2. Y la inversa también es cierta: existen números con cifras decimales que requieren un número finito de decimales en base 2, pero un número infinito de decimales en base 10. En tales casos, se trunca la representación; el resultado es lo más fiel posible para la cantidad de bits disponible, pero es erróneo. Toda operación efectuada con ésa cifra aportará un error; si el número de operaciones es elevado, el resultado final puede llegar a tener un error tan grande que resulte inadmisible.

Tipos de datos numéricos y alfanuméricos
Vamos a crear una taxonomía de los tipos de datos, atendiendo en principio a si se trata de datos textuales o numéricos. Hablaremos por tanto de datos numéricos o alfanuméricos; los primeros se representan internamente mediante una codificación binaria del número "humano" equivalente; los segundos al estar formados por caracteres en lugar de dígitos, requieren un tratamiento diferente.

La representación interna de los datos numéricos pretende optimizar el alcance, precisión y rendimiento, pero es preciso emplear técnicas distintas:


En lo que toca a la representación de información de tipo textual, se emplea un procedimiento consistente en asignar valores numéricos a los elementos gráficos mediante los cuales se representa la información en los lenguajes humanos:

Sea cual fuere el método de codificación empleado, las cadenas de caracteres ( strings en el argot informático) no pueden ser tan largas como se desee. Además, el ordenador necesita conocer de antemano la la longitud de la cadena, o bien el último byte de memoria que ocupa, para poder manipularla y representarla. El lenguaje Pascal antepone un byte de longitud a la cadena; por su parte, el lenguaje C pospone un byte de marcación de fin de cadena, el byte '\0', para indicar el fin de la misma. Ambos métodos poseen ventajas e inconvenientes.

Tipos de datos atómicos y estructurados. Tipos homogéneos e inhomogéneos
La representación interna empleada en el ordenador está formada por bits; todos los tipos de datos se reducen en última instancia a colecciones de bits. Por tanto, el únito tipo de datos que realmente no posee una estructura interna es el bit; todos los demás poseen "partes" a las que se puede acceder, aunque quizá de forma indirecta. Llamaremos tipos de datos atómicos a los tipos numéricos y caracteres, caracterizados porque no poseen partes más pequeñas a las que se pueda acceder, salvo los bits que los componen, como se ha dicho. Llamaremos tipos de datos estructurados a las matrices y estructuras (struct), caracterizados porque poseen partes más pequeñas (sus elementos o campos) a los que es posible acceder. Los tipos estructurados son colecciones de tipos atómicos, o de otros tipos estructurados, pero finalmente el tipo estructurado más anidado caba por poseer unicamente componentes atómicos. Dentro de los tipos estructurados, se distingen dos variedades: los tipos homogéneos, que están formados por elementos (atómicos o no) de igual tipo, y los heterogéneos, que están formados por elementos (atómicos o no) de distinto tipo. Los tipos de datos estructurados homogéneos se denominan matrices (listas, tablas, etc.). Los tipos de datos estructurados heterogéneos se llaman registros o estructuras.

Tipos de datos incorporados
Normalmente, los lenguajes poseen una cierta cantidad de tipos de datos "estándar" que son los que cabría esperar (tipos numéricos y alfanuméricos). A estos tipos de datos se les conoce con el nombre de tipos de datos incorporados ( built-in ), y se pueden utilizar directamente, sin necesidad de definirlos. Sin embargo, los tipos de datos estándar son muy generales, y no se adaptan a la aplicación concreta de cada programador. Por consiguiente, los lenguajes ofrecen mecanismos para crear

Tipos de datos definidos por el usuario
Son aquellos que el usuario construye tomando como primitivas de construcción los datos incorporados del lenguaje, o quizá otros tipos definidos por elusuario. De este modo se pueden construir (normalmente por aglutinación) tipos de datos que satisfagan mejor las necesidades del programador. Un ejemplo muy frecuente son las listas formadas por elementos de distintos tipos (incorporados o no), y los punteros o referencias de elementos de todo tipo (que contienen la dirección de un elemento de un tipo concreto).