Pascal Report  143  2. Summary of the Language  those  of declarations,  would  have  been  incompatible  with  those  allowing a natural and convenient representation of the additional  features of Pascal.  The main extensions relative to Algol 60 lie in the domain of  data-structuring facilities, since their lack in Algol 60 was considered  as the prime cause for its relatively narrow range of applicability. The  introduction of record and file structures should make it possible to  solve commercial-type problems with Pascal, or at least to employ it  successfully to demonstrate such problems in a programming course.  A computer program consists of two essential parts, a description of  actions  which are to be performed, and a description of the  data  that are  manipulated by these actions.  Actions are  described by  so-called  statements,  and data are described by so-called  declarations  and  definitions.  The data are represented by values of  variables.  Every variable  occurring in a statement must be introduced by a  variable decim'ation,  which associates an identifier and a data type with that variable. The  type  essentially defines the set of values that may be assumed by that  variable, and restricts the set of valid operations on those values. A type  in Pascal may be either directly described in the variable declaration, or  it may be associated with a type identifier by a  type definition  and then  represented by name.  The  simple  types are the predefined type  Real  and the various  ordinal  types. Every simple type defines an ordered set of values. Each  ordinal type is characterized by a one-to-one mapping from its values  to an interval of the integers - the so-called ordinal numbers of those  values.  The basic ordinal types are the programmer-defined  enumerated  types  and  the  predefined  types  Boolean,  Char,  and  Integer.  An  enumerated type introduces a new set of values and a distinct identifier  to denote each value. The values of Char are denoted by quotations, and  the values of Integer and Real are denoted  by  numbers;  these  are  syntactically distinct from identifiers. The set of values of type Char 