Next: Class definitions
 Up: Operational Semantics
 Previous: Environment and the Store
     Contents 
Syntax for Cool Objects
Every Cool value is an object.
 Objects contain a list of
named attributes, a bit like records in C.  In addition, each object belongs to a class. We use
the following syntax for values in Cool:
Read the syntax as follows: The value 
 is a member of class 
 containing the attributes
 whose locations are 
. Note that
the attributes have an associated location. Intuitively this means
that there is some space in memory reserved for each attribute. 
The value 
 has dynamic type 
. 
For base objects of Cool (i.e., Ints, Strings, and Bools) we use a
special case of the above syntax. Base objects have a class
name, but their attributes are not like attributes of normal
classes, because they cannot be modified. Therefore, we describe
base objects using the following syntax:
For Ints and Bools, the meaning is obvious. Strings contain two
parts, the length and the actual sequence of ASCII characters.
 
 
 
  
 Next: Class definitions
 Up: Operational Semantics
 Previous: Environment and the Store
     Contents