Subj : PL/I
To   : Fred Kantor
From : David Noon
Date : Sun Jan 07 2001 12:36 pm

Hi Fred,

Replying to a message of Fred Kantor to David Noon:

Welcome to OS2PROG!

FK> If I may ask...  IIRC, you mentioned that PL1 supported "arbitrary"
FK> precision.

Up to limitations imposed by hardware and/or hardware emulation software. For
fully arbitrary precision one must use an interpretive language, such as REXX,
and pay the appropriate performance penalty at run time.

FK> Can PL1 support individual bit operations, and AND, OR,
FK> and XOR, like Java BigInteger, and also support log, complex numbers,
FK> etc, on such numbers?

Yes. PL/I permits the declaration of individual bit variables and strings of
bits up to 32767 bits long. These do not need to be on byte boundaries, but can
be forced so by the ALIGNED attribute.

There are operators for bitwise AND, OR, XOR and NOT applicable to bits and bit
strings, plus intrinsic functions to perform the same operations on binary
integers of various precisions. Thee functions are polymorphic, so one uses the
same function name regardless of the arguments' precision(s).

All variables of computational data types can be declared as REAL or COMPLEX,
that latter obviously occupying two locations: one for the real part and one
for the imaginary part. The standard mathematical library is somewhat larger
than standard FORTRAN's and nearly all functions are polymorphic, supporting
various levels of precision and either real or complex arguments.

FK> And can it support object oriented coding?

Yes and no. The strict PL/I grammar does not support the bundling of functions
to data structures to form object classes, but the compiler does implement
this. The compiler architect has quietly distributed a document explaining how
to go about this.

Even without the lexical formalisms of OOP, adhering to strict PL/I grammar,
one can usually implement an object oriented design in PL/I just by enforcing
type matches in "method" calls to effect the bundling of the functions to data
structures of the appropriate type. Inheritance is a bit tricky, though.

Regards

Dave
<Team PL/I>

--- FleetStreet 1.25.1
* Origin: My other computer is an IBM S/390 (2:257/609.5)