As linguagens de programação, usualmente, provêm um conjunto fixo de tipos de dados embutidos, bem como facilidades para permitir a definição de tipos de dados pelo usuário. Assim, é correto afirmar, sobre lógica de programação, que os tipos de dados podem ser: