HP 3000 Manuals

Ch 5. Allocation and Alignment [ HP Pascal/iX Programmer's Guide ] MPE/iX 5.0 Documentation


HP Pascal/iX Programmer's Guide

Chapter 5  Allocation and Alignment 

This chapter:

   *   Defines allocation, alignment, and packing algorithm.

   *   Shows how unpacked and packed variables are allocated and aligned.

   *   Tells how entire arrays and records are allocated and aligned
       (whether they are unpacked, packed, or crunched).

   *   Shows how array elements and record fields are allocated and
       aligned when they are unpacked, packed, and crunched.

   *   Explains how enumeration and subrange types are related and shows
       how they are allocated and aligned.

   *   Explains how files, sets, and strings are allocated and aligned.


NOTE This chapter applies to the HP Pascal packing algorithm, which is the default. On the MPE/iX operating system, the compiler option HP3000_16 specifies the Pascal/V packing algorithm instead. For information on the HP3000_16 compiler option, refer to the HP Pascal/iX Reference Manual. For information on the Pascal/V packing algorithm, see Appendix A in this manual.
In diagrams in this section, bold lines are byte boundaries and fine lines are bit boundaries. Unused bits and bytes are shaded. Example Click here to view figure. Note that: * Zero represents the Boolean value FALSE, and one represents TRUE. * The leftmost bit represents the sign of a signed integer value. Byte boundaries are broken where a variable crosses them. Bit boundaries are omitted where a variable crosses them. A space that is allocated to a variable contains the variable's name. If the name does not fit the space, it is printed outside, with an arrow pointing to the space. Example Click here to view figure. The variables a and b occupy one bit each, c occupies six bits, d and e occupy two bytes each, f occupies three bytes, and g occupies eight bytes.


MPE/iX 5.0 Documentation