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 --- FleetStreet 1.25.1 * Origin: My other computer is an IBM S/390 (2:257/609.5) .