6.2.1 Array types. An array t) I)e is a structure consisting of a fixed number of components which ,ilre all of the same type, called the component type. The component', are in a one-to-{me correspondence with the values of the index type 

ArrayType = "array" "[" lnde,\/\'pe I ","lndexType I"]" "of" ComponentType IndexType = OrdinalType , ComponentType = Type, 

More than one index type may b(' specified, as in 

and this is simply an abbreviatioll for the notation 

packed array [TI, T2, , .. , Tn] of c, 

packed array [T1] of picked array [T2, ... ,Tn] of c. These two notations would also b~ equivalent if neither were prefixed with packed. 

Examples of array types: 

array [1 .. 100] of Real array [1 .. 10, 1 .. 20] oj 0.99 array [Boolean] of Colc r array [Size] of packed Jrray ['a' .. 'z'] of Boolean 

Each value of an array type is a functional (many-to--one) mapping from the entire set of index values to the set of values of the component type. 

An array type is called a sfl ing type if it is packed, has as its component type the predefined t) pe Char and has as its index type a subrange of Integer from 1 to n, for n greater than 1. The character strings (see Section 4) are constm IS of string types. 

Examples: 

packed array [1.. Strine ,>[qth] of Char packed array [1 .. 2] of ",It 

6.2.2. Record types. A record typ;' has a fixed number of components, possibly of different types. The sl"l'cific components and their types, and the values of the record type, ,: I'e determined by the field list of the record type. 

RecordType = "record" Fie/dList "end" , Fie/dList = [ ( FixedPart [ ";" Varial/tPart 1 VariantPart) [ ";" 11 ' 

