Next: Changes, Previous: Exceptions, Up: Top
Variables names have the format <description><type> where
<description> is an arbitrary description of the variable, and
<type> its type. This is similar to the Hungarian notation
used by Microsoft. Many people do not like it, but I think it is a
good way to save time debugging type errors in Mozart (not being
statically typed).
Types can be combined to yield new types. This is especially useful for records, tuples and functions:
In addition, we write XY for a “type disjunction”, i.e., a variable which can either be of type X or of type Y.
We display the Oz type hierarchy taken from
http://www.mozart-oz.org/documentation/base/node2.html#chapter.typestruct
below:
X Y Z - Value
FI - Number (Float or Int)
I - Int
D - FDInt
Ch - Char
F - Float
Rec - Record (R)
Tup - Tuple (T)
L - Literal
A - Atom
N - Name
B - Bool
U - Unit
Proc - Procedure (P)
PO - unary Procedure or Object
Ce - Cell
C - Chunk
Arr - Array
Dict - Dictionary
BitArr - BitArray
K - Class
O - Object
Lock - Lock
Port - Port
The types used in the XDK are based on the type hierarchy above. Here they are:
Attribute - XML attribute
A - atom
Arr - array
B - bool
ByteS - byte string
BitS - bit string
BitArr - bit array
Bot - (SL) lattice bottom value
C - chunk
Ce - cell
Ch - char
CIDA - class ID (atom)
CIDCIL - class ID (IL constant)
CIL - IL constant
CA - (A) principle constraint name
Co - lattice fd/fs variable count
Coord - coordinate
D - finite domain
Desc - expression description
Dict - dictionary
DIDA - dimension ID (atom)
DIDCIL - dimension ID (IL constant)
Dimension - (SL) a dimension
DVA - (A) dimension variable
DSpec - specification of a finite domain
Element - XML element
Entry - (SL) an entry
Entries - (SLs) a list of entries
E - exception
F - float
FI - number (float or integer)
File - file
Functor - functor
Handler - resolve handler
I - integer
IDA - any ID (atom)
IDCIL - any ID (IL constant)
IL - intermediate language (IL) expression
ILDist - IL expression after Distributor.oz
ILEnc - IL expression after Encoder.oz
ILCh - IL expression after TypeChecker.oz
ILTCo - IL expression after TypeCollector.oz
IIL - IL integer
K - class
Lock - lock
L - literal
Lat - Lattice abstract data type
LI - feature (literal or integer)
M - finite set
MSpec - specification of a finite set
N - name
O - object
OIDA - output ID
OL - output language (OL) expression
On - (N) output name
PIDA - principle ID (atom)
PIDCIL - principle ID (IL constant)
SL - solver language (SL) expression
SLC - SL after Compiler.oz
SLE - SL after Encoder.oz (stateless)
Pn - (N) principle name
Port - port
Principle - (SL) principle
Proc - procedure
Prof - profile
PO - unary procedure or object
Rec - record
S - string
Sem - sem feature value
Spc - space
Str - Stream
Sym - sym feature value
Term - expression
TIDA - type ID (atom)
TIDCIL - type ID (IL constant)
TkDEdges - edges
TkDOptions - options
TkDNodes - nodes
Tkvar - Tk-variable
Tn - (N) type name
Token - token
Top - (SL) lattice top value
Tup - tuple
U - unit
UL - user language expression
Url - URL record
UrlV - virtual string representing a URL
V - virtual string
W - Tk-widget
Win - Tk-toplevel widget (= window)
X - any type
Xs - list of X elements
Y - any type
Z - any type