IBM PL/I compiler has released a new version on IBM Z. The recent announcement of Enterprise PL/I V5.3 reinforces the continuing IBM commitment to the PL/I programming language on the z/OS operating systems and the continued delivery of new features.
Specifically, V5.3 offers:
The exploitation of the new IBM z15™ hardware
With V5.3, you can reduce CPU usage of decimal compute-intensive applications by up to 50%, and on average by 12% on IBM z14 over the same compute-intensive applications originally built with the previous Enterprise PL/I product. The new ARCH(13) compiler option allows the compiler to exploit the latest IBM z15.
Improved processing of UTF-8 strings with the introduction of a new native datatype
The V5.3 compiler provides increased efficiency and support for Unicode data encoded in UTF-8 format. A new native datatype, UCHAR, has been introduced to help you easily build maintainable applications and process UTF-8 strings efficiently.
The enhanced support for processing UTF-8 strings also includes support for hex strings ending with the suffix UX so that you specify arbitrary UTF-8 string constants such as '00'ux (the lowest UCHAR value) and 'F48FBFBF'ux (the highest UCHAR value).
The enhanced support for processing UTF-8 strings means that you can now work directly with UTF-8 strings without having to waste CPU resources on converting them. This results in more maintainable programs and is especially useful when you modernize your PL/I applications to work with web services.
See UCHAR data and UX (hex) UCHAR constant.
Several usability enhancements, particularly support for namespaces and VALUE sets
The QUALIFY statement and a corresponding END statement delimit a qualify block, and thus create a namespace for ORDINALs, other types, and named constants. See QUALIFY statement.
The VALUELIST and VALUERANGE attributes limit the set of values that a variable, an argument, or a returned value can have. See VALUELIST attribute and VALURRANGE attribute.
The VALUELISTFROM attribute lets you copy a VALUE set from one variable to another. See VALUELISTFROM attribute.
Besides, the V5.3 compiler also has a number of new features to help you optimize your PL/I applications and increase your programming productivity. Specifically, the new compiler:
• Supports the date/time patterns YYYY/MM/DD, YY/MM/DD, YYYY-MM-DDTHH:MI:SS.999999, DD/MM/YYYY, and DD/MM/YY. See Date/time built-in functions.
• Enables you to use the two slashes (//) characters to specify that the rest of a line is a comment. See Delimiters and operators.
• Increases the maximum LINECOUNT value to 65535 lines so that fewer page breaks are created in listings intended to be viewed only online. See LINECOUNT.
• Allows you to assign '' to HANDLEs, OFFSETs, AREAs, and ENTRYs as a simple way to assign a null value to them in the same manner that you can assign '' to POINTERs. See Non-computational targets.
• Limits false positives in NOLAXENTRY and NOLAXQUAL checking by excluding names starting with 'DFH', 'DSN', 'EYU', 'SQL', or ' IBM'. See RULES.
New built-in functions and options to add more functionality and increase flexibility
The V5.3 compiler provides you with additional functionality so that you can modernize your applications. It also allows for maximum portability of your source code among a variety of compiler implementations.
The V5.3 compiler provides the following new and enhanced built-in functions:
New built-in functions
• Array: INARRAY, QUICKSORT, and QUICKSORTX
• Buffer: MEMREPLACE
• Condition: ONOPERATOR
• Comparison and replacement: IFTHENELSE, FOLDEDFULLMATCH, FOLDEDSIMPLEMATCH, REGEX, and REPLACE
• Date/time value: MAXDATE, STCKETODATE, STCKTODATE, PLISTCKLOCAL, PLISTCKUTC, PLISTCKELOCAL, and PLISTCKEUTC
• File reference: FILEDDWORD
• JCL: ISJCLSYMBOL
• Precision: PRECVAL and SCALEVAL
• UTF-8 string: BYTELENGTH, UHIGH, ULOW, UVALID, UPPERLATIN1, UPPERASCII, LOWERLATIN1, LOWERASCII, ONUCHAR, and ONUSOURCE
• System information: GETSYSWORD and GETSYSINT
Enhanced built-in functions
• Buffer: MEMCONVERT
• JSON: JSONPUTVALUE and JSONPUTMEMBER
See Summary of changes, Language Reference.
The V5.3 compiler provides the following new and modified compiler options:
New compiler options
- PP(MACRO('IGNORE')) | PP(MACRO('NOIGNORE'))
Modified compiler options
See Summary of changes, Programming Guide.
Improved JSON and XML support
The V5.3 compiler increases support for various casings of names in the JSON functions via:
• the addition of LOWER as a suboption to the JSON(CASE)compiler option
• the new JSON(GET(HEEDCASE | IGNORECASE)) compiler option
• the support for an optional parameter to JSONPUTMEMBER and JSONPUTVALUE that specifies whether the names should be written in lowercase, in uppercase, or as is.
A new XMLNAME attribute has been introduced, so that alternate name formats can be specified for XML output. See XMLNAME attribute.
Compiler and runtime support for z/OS V2.4
Enterprise PL/I for z/OS, V5.3 adds support for building and running PL/I applications for the z/OS V2.4 operating system.
With Enterprise PL/I for z/OS, V5.3, you can benefit from over 50 years of IBM experience in PL/I compiler innovation and development. Please visit the Enterprise PL/I for z/OS V5.3 Knowledge Center for more information. Both English manuals and Japanese manuals are viewable and downloadable now in the PL/I documentation library.
If you have any comments regarding the PL/I documentation, please send them to firstname.lastname@example.org.