Data types

Basic types

All basic types are integer intervals. Lower and upper bounds can either be integer values or open (i.e. plus/minus infinity). The empty interval will probably not be allowed as type because it can have no legal value anyway.

Nota bene: intervals with size 1 are allowed and no data need actually be transmitted or stored for them.

Bounds could either be demanded to be specified in the specification directly, or allowed to be taken from data values. This is still open.

Intervals with non-negative (finite) lower bound can be used for holding the lengths of lists.

Intervals of the form [0, N-1] can be viewed as enumeration types and can be used for selecting the branch of a union.

Interval types can have two different modes:

  1. values near 0 are expected to be more probable

  2. all values are expected to be equally probable

Infinite interval types always have mode 1, intervals used for enumeration always mode 2, for all other finite interval types the mode can be chosen freely.

Examples:

Structured types

In this context types are considered "previous" to a component T if they occur in a record type as an earlier component than an ancestor of T.


Back to the main page.

Page created: Jul 20, 1997 - last update: Nov 26, 2002 - version 2.1
Jörg Czeranski (Impressum)