Тип характеризует множество значений, к которому принадлежит константа, или которые может принимать переменная или выражение, или которые могут порождаться функцией.
В большинстве случаев новый тип данных строится из других типов, уже определенных (назовем их составляющими). Значения такого типа – это обычно агрегаты значений компонент, принадлежащих ранее определенным составляющим типам, и такие значения называются составными, или структурированными. Если используется только один составляющий тип, то есть все компоненты принадлежат одному типу, то этот тип называют базовым. Число различных значений типа T называют его мощностью. Мощность позволяет определить объем памяти для представления переменной x, имеющей тип T, что обозначается как x: T.
Если значения типа могут быть упорядочены, то такой тип называют упорядоченным. В Обероне все бесструктурные типы упорядочены.
Базовые методы структурирования, суть массив, запись и последовательность. Более сложные структуры обычно не определяются как статические типы, а порождаются динамически во время выполнения программы, когда могут меняться их размер и состав. К таким структурам относятся:
- списки;
- кольца;
- деревья;
- и вообще конечные графы.
Переменные и типы данных вводятся в программу для использования в вычислениях. Для вычислений нужно иметь набор операций. Для числовых типов мы вводим стандартные арифметические операции, а для логических значений – элементарные операции логики высказываний.
Нередко считают, что суть искусства программирования – в комбинировании операций. Однако мы увидим, что хорошее структурирование данных – задача не менее фундаментальная и важная.