As linguagens de programação em geral apresentam mecanismos para manipulação de dados. Estes mecanismos se apresentam na forma de tipos básicos de dados que, dentre outras funções, efetuam a checagem de quais operadores são aplicáveis ao se usá-los dentro de expressões. As linguagens de programação também, em geral, apresentam mecanismos para se declarar tipos de dados que correspondem a uma sequência finita de nomes que definem os valores válidos do tipo em questão. Estes tipos são chamados de: