144  Pascal Report  and  their  graphic  representation  vary  from  implementation  to  implementation,  depending  on  1  he  character  set  of a  particular  computer system.  Another ordinal type that may llc defined is a  subrange  of any basic  ordinal type (the host type) by indic .lting the smallest and largest values  in the interval of values represented by the subrange.  The  structured  types are defined by describing the types of their  components and by indicating a structuring method.  The various  structuring methods differ in the mechanism serving to access the  components of a variable of the structured type. In Pascal, there are four  basic structuring methods available: array structure, record structure,  set structure, and file structure.  In an  array  structure, all COlli ponents are of the same type. A  component is accessed by a complltahle  index,  whose type is indicated  in the array type description and which must be ordinal.  It  is usually an  enumerated type or a subrange of Integer. Given a value of the index  type, an  indexed variable  accesse .. one component of the array. Each  array variable can therefore be regarded as a mapping of the index type  onto the component type. The time needed for a component access does  not depend on the value of the index. The array structure is therefore  called a  random-access  structure.  In a  record  structure,  the  mmponents  (called  fields)  are  not  necessarily of the same type. In order that the type of a field be evident  from the program text (without e\ccuting the program), a field is not  specified by a computable value, hut instead is specified by a unique  identifier.  These field  identifier  I,  are  declared in  the  record type  description. Again, the time need,'d  10  access any component does not  depend on the field  identifier,  ,lnd  the  record is  therefore  also  a  random-access structure.  A record type may be specif  11,:d as having several  variants.  This  implies that different variables, <,:though said to be of the same type,  may assume structures that diffel  in a certain manner. The difference  may consist of a different numbel and different types of components.  The variant that is assumed by till: current value of a record variable  may be indicated by a component field which is common to all variants  and is called the  tag field.  Usually. the part common to all variants will  consist of several components, including the tag  field. 