OpenU.Ru
Дескриптор множества значений, не обладающих индивидуальностью,
которая выражается в независимости существования. Типы данных могут быть примитивными
(предопределенными) или определяться пользователем. К числу примитивных типов
относятся числа, строки и время. Типы, определимые пользователем, - это перечисления.
Анонимные типы данных, которые предназначены для реализации системы в программном
коде, можно определить с помощью типов языка программирования.
См. classifier; identity.
Семантика
Типы данных являются предопределенными примитивами, которые используются как
основа для типов, определяемых пользователем. Их семантика описывается математически,
вне механизмов построения типов в языке. Числа (целые и вещественные) являются
предопределенными. Строки тоже определяются заранее. Все эти тины данных не
относятся к тем, которые определяются пользователем.
Типы перечислений являются конечными множествами именованных элементов, определяемых
пользователем. Они обладают упорядоченностью, однако никаких других вычислительных
свойств у них нет. Тип перечисления обладает именем и списком констант. Так,
тип Boolean (логический) представляет собой предопределенное перечисление. Его
литеральными константами являются false (ложный) и true (истинный).
Для типов данных можно определять операции; также операции могут принимать типы
данных в качестве параметров. Типы данных не имеют индивидуальности, представляя
собой только значение, поэтому операции, которые над ними производятся, не изменяют
их, а лишь возвращают некоторые значения. Нельзя говорить о создании нового
значения типа данных, поскольку типы данных не имеют индивидуальности. Все значения
типов данных (концептуально) предопределены. Операция над типом данных - это
запрос, который не может изменить состояние системы, а только возвращает значение.
Тип данных можно также описать с помощью языковою типа, то есть выражением для
типа данных, принятым в языке программирования. Такое выражение будет обозначать
анонимный тип данных в целевом языке программирования. Например, выражение Person*
(*) (String) указывает на выражение для типа данных, существующее в языке C++,
имя которого не соотносится с каким-либо простым типом данных.