HP 3000 Manuals

Passing Data [ DATA TYPES CONVERSION Programmer's Guide ] MPE/iX 5.0 Documentation


DATA TYPES CONVERSION Programmer's Guide

Passing Data 

To pass data between routines in different languages, you may need to
convert it to make it readable and to maintain its integrity.  Data
created in one routine is formatted according to the language type
conventions of that routine; if the receiving routine divides the input
bit stream in different places, it will not read the same values.  If the
receiving and sending routines do not have the same definitions of data
types, any data that one routine passes to the other will be meaningless,
and any operation on that data will be unpredictable.

Often the programming language has commands or compiler directives the
convert or coerce data to the required type.  You can sometimes convert
input and output data with a command line in a program.  Often an
assignment statement, like xtype := yvalue or xtype=yvalue is sufficient.

Sometimes a more indirect conversion is necessary.  Since all data types
in all MPE languages are either primitive data types or are built from
them, you can translate data from one language into a primitive data
type.  If necessary, you can then translate the resulting primitive type
into the type you need.

High-level languages can access and use most system intrinsics and
compiler routines.

MPE V had system-level support of applications written in SPL/V language
that perform packed-decimal operations; CM emulates these operations on
MPE XL. In NM, compiler library routines can be used to manipulate
decimals.  Because the sizes of the operands are passed as parameters,
these routines are useful in applications where the field sizes are not
known at compile-time, such as general-purpose database applications and
report writers.

Packed-decimal procedures must be declared as intrinsics to be called
from within high-level NM languages.  If speed is a primary concern,
consider doing packed-decimal operations within HP COBOL II/XL or HP
RPG/XL.

For more information see MPE XL Intrinsics Reference Manual (32650-90028)
and Compiler Library/XL Reference Manual (32650-90029).



MPE/iX 5.0 Documentation