Collection or grouping of data values, usually specified by a set of possible values, or a set of allowed operations on these values.1
Purpose
- a matter of good organisation that aids the understanding of complex definitions
- allows compilers to choose an efficient machine representation