Tipos

Los diferentes valores (enteros, reales, caracteres, vectores, listas, diccionarios, etc.) que puede manejar un lenguaje se agrupan en tipos.

Un tipo se configura a partir de:

  • un conjunto de valores

    Por ejemplo, un conjunto formado por enteros {…,-3,-2,-1,0,1,2,3,…}

  • las operaciones permitidas para esos valores

    Por ejemplo, para los enteros disponemos de la suma (+), resta (-), división (/), multiplicación (*) y resto de la división entera (%)

  • una aplicación que asocia a cada valor del tipo una representación binaria

    Por ejemplo, la representación binaria del valor -2 con tipo int en C/C++ es una agrupación de 32 bits:

    11111111111111111111111111111110

Usaremos habitualmente en el curso los siguientes tipos:

  • bool para representar valores booleanos, es decir, cierto o falso.

  • int para representar valores enteros.

  • double para valores reales.

  • char para caracteres.

  • string para cadenas de caracteres.

  • vector<tipo> para colecciones de datos del mismo tipo.

Clasificaciones

Los comités de estandarización de cada lenguaje o diferentes autores tienen (y varían en el tiempo) su propia terminología acerca de conceptos tales como tipo primitivo, tipo nativo, tipo básico, tipo fundamental, tipo compuesto, tipo escalar, etc. por lo que la bibliografía es confusa y contradictoria.

Una forma no bizantina de clasificarlos podría ser:

  • Tipos nativos, proporcionados por el lenguaje, que pueden ser simples o compuestos.

    Por ejemplo, bool, char, int, float o double en C++

  • Tipos definidos por el programador o suministrados por una biblioteca estándar.

    Por ejemplo, string o vector de la biblioteca estándar de C++