Во-первых, в Pascal ключевое слово TYPE не создает типы. Ключевое слово TYPE должно встречаться перед определениями типов, но именно определения типов МОГУТ создавать типы. Не все определения типов создают типы.
Стандарт Паскаля говорит следующее:
A type-definition shall introduce an identifier to denote a type.
, что означает, что определение типа вводит (т. Е. Создает или переопределяет) идентификатор, который обозначает (т. Е. Является псевдонимом) тип.
Стандарт Паскаля определяет определение типа как:
type-definition = identifier '=' type-denoter
type-denoter = type-identifier | new-type
new-type = new-ordinal-type | new-structured-type | new-pointer-type
Что означает, что определение типа является идентификатором, за которым следует одинаковая сторона, за которой следует денотер типа Denoter типа - это либо идентификатор типа, либо новый тип.
Таким образом, идентификатор типа вводит идентификатор, который обозначает (т.е. является псевдонимом) либо идентификатор другого типа, либо новый тип. Тип создается только в том случае, если denoter типа является новым типом.
Итак, в вашем примере:
TYPE
Meters = Real; Seconds = Real;
Denoter типа в обоих определениях типа является идентификатором типа Real, поэтому Meters и Seconds являются псевдонимами для Real.
Да, в Pascal, Real не является типом, это встроенный идентификатор типа для реального типа.
Стандарт Паскаля гласит
Обязательный идентификатор типа real должен обозначать вещественный тип.
То есть real на самом деле является идентификатором типа, а не типом. Как будто существует невидимое определение типа.
TYPE
Real = real-type;
где реальный тип - фактический реальный тип.