Operations on Compound Objects in .NET Create data matrix barcodes in .NET Operations on Compound Objects

Operations on Compound Objects using none tointegrate none in web,windows application ISO QR Code standard Creating Program Objects: Value Constructors A program object of a primitive type is created initially by executing a function or by writing a literal in a program. For example, the result of performing an addition operation is a program object. Arithmetic expressions and most functions create program objects as their results.

(Sometimes these program objects are references). These values are kept on a run-time stack. Programming language conventions have developed to allow the writing of literal values of all the primitive types.

Most languages have distinguishable syntactic forms for types real, integer, and character, and sometimes for Boolean. Additional primitive types, such as short integer, packed decimal, and byte, are sometimes supported. Sometimes the same program object may be denoted by more than one literal expression.

For example, C lets the programmer write an octal, hexadecimal, or decimal literal to denote an integer value. A language that permits a programmer to de ne new types should provide some way to write literals for these types. Pascal does not do this; the programmer cannot, therefore, de ne a constant of a user-de ned type.

C permits such a literal value to be written as an initializer, in a declaration, but not in any other context. This is a wholly unnecessary restriction. A language could include a constructor function which we will call MAKE to solve this problem.

The rst argument of MAKE is a type. Following this is a variable number of literals or expressions appropriate in number and composition for program objects of the speci ed type [Exhibit 14.27].

MAKE takes the separate pure values in this list, bundles them into an object of the given type, and. 14.3. OPERATIONS ON COMPOUND OBJECTS Exhibit 14.27. Maki ng a record object from its components.

Assume that the type complex-pair has been de ned as a record containing real and imaginary components, and that imaginary numbers are made out of reals. Then a complex-pair would be constructed by executing the following: MAKE( complex-pair, 0.0, MAKE( imag, 5.

6) );. returns this value none none as its result. It is important to note that this result should be a coherent object, temporarily residing on the run-time stack. It can, therefore, be dealt with or manipulated as a whole even if it is a record or an array.

Another possible approach with the same semantics but slightly di erent syntax was used in Ada. Each de ned type name becomes a constructor function automatically. To construct a program object of the new type, the new type name is written preceding the appropriate series of components, listed in parentheses [Exhibit 14.

28].. The Interaction of Dereferencing, Constructors, and Selectors Dereferencing maps none none a reference into a program object, or value. This reference/value relationship is complicated by the introduction of compound data-objects (arrays and records), selection functions, and constructors. A selection function takes, as parameters, a compound object and a part speci cation.

It returns a reference to the speci ed part of the compound [Exhibit 14.29]. A constructor combines a set of components into a single compound object.

The selection functions in many familiar languages (e.g., FORTRAN and Pascal) take references to compound objects as parameters and return references to simple objects as results.

The simple reference is then dereferenced if the context requires. Simple selection functions are combined to build the essential accessing functions for abstract data types such as stack in Exhibit 14.30.

A constructor creates a compound program object from a set of pure values on the run-time. Exhibit 14.28. Maki ng a record object from its components in Ada.

type imag is new float; type complex_pair is record rp: float; ip: imag end record; -- Floats will be used to represent type imag. -- A complex pair is a float and an imag..

complex_pair(0.0, i none none mag(5.6)) -- Make an float into an imag, then -- use it with another float to make -- a complex pair.

Copyright © . All rights reserved.