IBM Support

What's new in PL/I for AIX, V3.1

News


Abstract

IBM® PL/I for AIX®, V3.1 delivers various performance, usability, quality and serviceability enhancements, which are briefly described below. You can get details on these features and all other aspects of the compiler in the relevant compiler documentation.

Content

PL/I for AIX, V3.1

Enable the integration of business critical PL/I applications with modern web technology

To remain competitive, you need a complete business strategy to help you modernize, integrate, and manage existing applications, data, and skill sets to ease your organization’s transformation into a more flexible business. You need to be able to connect your business components end to end with your suppliers, partners, employees, and customers; and you need to position your organization to quickly take advantage of opportunities and respond to challenges in real time. PL/I for AIX helps you to meet these challenges and lets you use your existing PL/I code while upgrading your applications with the newest technologies.


Integrates, modernizes and manages assets with web services capabilities

With PL/I for AIX you can leverage more than 30 years of IBM experience in application development to facilitate your new On Demand Business endeavors, helping integrate PL/I and web-based business processes in web services, XML, Java, and PL/1 applications. This compiler’s interoperability lets you capitalize on existing IT investment while smoothly incorporating new, web-based applications as part of your organizations infrastructure.

IBM PL/I for AIX is a leading-edge, AIX-based compiler that maximizes middleware by providing access to IBM DB2® and TXSeries systems.

This new version of PL/I for AIX V3.1, underscores the continuing IBM commitment to the PL/I programming language on the AIX platform.

This version includes back-end optimizer enhancements specific to AIX plus all the enhancements (other than hardware specific items) made to the Enterprise PL/I for z/OS compiler since the last PL/I for AIX release.

PL/I for AIX Version 3.1



Provides improved performance

The performance of PL/I for AIX applications has been improved via both front-end changes and back-end optimizer enhancements.

The back-end optimizer, a component common also to the IBM XL compilers, lets your applications leverage the latest industry-leading optimization technology. It will produce for PL/I code that is intended to perform well across all hardware levels, including POWER7®, of AIX.

Front-end changes that improve performance include, but are not limited to:


Compile-time performance improvements include:


Provides an improved source-level debugger

The IBM Debugger for AIX is an interactive source-level debugger. It works on a Windows®-based client that is connected remotely to a debugger engine running on AIX. The Debugger for AIX lets you conveniently debug applications that are written in C, C++, COBOL and PL/I from your workstation.

The debugger displays application source files and the elements in those source files. You can single-step, step through, or step over a specified line; and you can stop execution at a specified line or condition. While controlling execution, you can monitor variables, registers, memory, call stacks, and other elements.

Improves the MACRO preprocessor

In PL/I for AIX V3.1:
  • The MACRO preprocessor now supports an INCOLY suboption, which allows you to specify whether the MACRO preprocessor should process only %INCLUDE statements or whether it should process all macro statements.
  • The new MACRO construct %DO SKIP makes it possible to support meta-comments.
  • The new NAMEPREFIX option allows you to force macro procedures and variables to start with a specified character. This option allows you to enforce naming conventions for macro procedures and variables.


Provides improved support for SQL and CICS

In PL/I for AIX V3.1:
  • The new DIMACROSS attribute allows you to specify a DIMENSION attribute on a structure but which will effectively be removed from the structure and propagated to its children. This attribute is particularly useful with SQL multi-row fetch.
  • The SQL preprocessor now also supports an INCONLY option. This option acts similar to the INCONLY option in the MACRO preprocessor: under PP(SSQL('INCONLY')) only EXEC SQL INCLUDE statements will be processed and all other EXEC SQL statements will be left as is.
  • DBCS is now supported by the integrated SQL preprocessor (as it had already been supported by the MACRO and CICS preprocessors).
  • The new INDICATORS built-in function makes it easy to declare an array to be used as a SQL indicator variable with a structure.



Leverages productivity with new and improved built-in functions


PL/I for AIX 3.1 includes a new set of powerful built-in functions to support the processing of UTF data:

MEMCU12
MEMCU14
MEMCU21 etc
Provide fast Unicode conversions between UTF-8, UTF-16 and UTF-32
ULENGTH Returns the number of UTF-8 or UTF-16 characters in a CHAR or WIDECHAR string, respectively.
ULENGTH8 Returns the CHAR length, if the UTF-16 characters in a WIDECHAR string were converted to UTF-8.
ULENGTH16 Returns the WIDECHAR length, if the UTF-8 characters in a CHAR string were converted to UTF-16.
UPOS Returns the position of the nth UTF-8 or UTF-16 character in a CHAR or WIDECHAR string, respectively.
USUBSTR Returns the UTF-sensitive substring of a CHAR or WIDECHAR string
USURROGATE Tests if a CHAR or WIDECHAR string contains any surrogate pairs.
UVALID Tests if a CHAR or WIDECHAR string contains valid UTF-8 or UTF-16 data, respectively.
UWIDTH Returns the width of the nth UTF-8 or UTF-16 character in a CHAR or WIDECHAR string, respectively

In addition, PL/I for AIX 3.1 supports the new built-in functions introduced by Enterprise PL/I such as

· FIXEDBIN, FIXEDDEC, FLOATBIN, and FLOATDEC
· MEMCONVERT
· PICSPEC
· PLITRAN11, PLITRAN12, PLITRAN21, and PLITRAN22

The support for date-time strings in the REPATTERN and other built-in functions has also been enhanced by date formats with zero-suppression (such as ZY-ZM-ZD) and DB2 date formats (such as YYYY-MM-DD).

Increases quality control with new and improved compiler options

With the 3.1 release, PL/I for AIX provides many new and improved options to boost productivity.

Compiler option Enables you to
CHECK(CONFORMANCE) Check that structures and array parameters and arguments match.
CODEPAGE Accept the entries 1026 (the Turkish code page) and 1155 (the 1026 code page plus the Euro symbol).
DEPRECATE Request that the compiler flag the usage of specified built-in functions, user variables, or include files. With this option, you can more easily enforce internal quality and naming standards.
IGNORE Suppress PUT FILE and/or DISPLAY statements. You can use these statements for debug purposes while more easily compiling them out of the production version.
MAXGEN Flag statements generating lots of code. With this option, you have the knowledge to improve the efficiency of your programming.
MAXNEST Flag excessive nesting of BEGIN, DO, IF, and PROC statements
ONSNAP Request the compiler to insert an ON STRINGRANGE SNAP statement or an ON STRINGSIZE SNAP statement into the prologue of a MAIN or FromAlien procedure so that the calling module and module name can be identified.
PPCICS, PPINCLUDE, PPMACRO, and PPSQL Specify the options to be passed to the corresponding preprocessor
QUOTE Specify alternate code points for the quote (") symbol since this symbol is not code-page invariant
USAGE Control the behavior of the HEX and SUBSTR built-in functions
XML Specify that the tags in the output of the XMLCHAR built-in function be either in all upper case or in the case in which they were declared.

The RULES suboption now gives you more ability to enforce your coding standards via these new suboptions:

Also, to simplify compiler options, in PL/I for AIX 3.1,

Boosts serviceability with new diagnostics

The PL/I for AIX V3.1 compiler provides many new and improved messages. The compiler uses some of these new messages to flag:

The PL/I for AIX V3.1 compiler also provides several listing improvements:

Document information

More support for: PL/I for AIX
General Information

Software version: 3.1

Operating system(s): AIX

Reference #: 1500852

Modified date: 15 June 2011