so on this notion of classification is equally if not more important in data processing we will adhere to the principle that every constantvariableexpressionor function is of certain type this type essentially characterizes the set of values to which constant belongsor which can be assumed by variable or expressionor which can be generated by function in mathematical texts the type of variable is usually deducible from the typeface without consideration of contextthis is not feasible in computer programs usually there is one typeface available on computer equipment ( latin lettersthe rule is therefore widely accepted that the associated type is made explicit in declaration of the constantvariableor functionand that this declaration textually precedes the application of that constantvariableor function this rule is particularly sensible if one considers the fact that compiler has to make choice of representation of the object within the store of computer evidentlythe amount of storage allocated to variable will have to be chosen according to the size of the range of values that the variable may assume if this information is known to compilerso-called dynamic storage allocation can be avoided this is very often the key to an efficient realization of an algorithm the primary characteristics of the concept of type that is used throughout this textand that is embodied in the programming language oberonare the following [ - ]: data type determines the set of values to which constant belongsor which may be assumed by variable or an expressionor which may be generated by an operator or function the type of value denoted by constantvariableor expression may be derived from its form or its declaration without the necessity of executing the computational process each operator or function expects arguments of fixed type and yields result of fixed type if an operator admits arguments of several types ( is used for addition of both integers and real numbers)then the type of the result can be determined from specific language rules as consequencea compiler may use this information on types to check the legality of various constructs for examplethe mistaken assignment of boolean (logicalvalue to an arithmetic variable may be detected without executing the program this kind of redundancy in the program text is extremely useful as an aid in the development of programsand it must be considered as the primary advantage of good high-level languages over machine code (or symbolic assembly codeevidentlythe data will ultimately be represented by large number of binary digitsirrespective of whether or not the program had initially been conceived in high-level language using the concept of type or in typeless assembly code to the computerthe store is homogeneous mass of bits without apparent structure but it is exactly this abstract structure which alone is enabling human programmers to recognize meaning in the monotonous landscape of computer store the theory presented in this book and the programming language oberon specify certain methods of defining data types in most cases new data types are defined in terms of previously defined data types values of such type are usually conglomerates of component values of the previously defined constituent typesand they are said to be structured if there is only one constituent typethat isif all components are of the same constituent typethen it is known as the base type the number of distinct values belonging to type is called its cardinality the cardinality provides measure for the amount of storage needed to represent variable of the type denoted by xt since constituent types may again be structuredentire hierarchies of structures may be built upbutobviouslythe ultimate components of structure are atomic thereforeit is necessary that notation is provided to introduce such primitiveunstructured types as well straightforward method is that of enumerating the values that are to constitute the type for example in program concerned with plane geometric figureswe may introduce primitive type called shapewhose values may be denoted by the identifiers rectanglesquareellipsecircle but apart from such programmer-defined typesthere will