Newsgroups: comp.lang.pl1,comp.answers,news.answers Subject: PL/I Frequently Asked Questions (FAQ) From: r|o|b|i|n|5|1 at dodo dot com dot au (Robin Vowels) Followup-To: comp.lang.pl1 Reply-To: r|o|b|i|n|5|1 at dodo dot com dot au
Summary: This posting contains a list of Frequently Asked Questions (and their answers) about PL/I -- Programming Language One. It should be read by anyone wanting to read the newsgroup comp.lang.pl1. It is of interest to anyone wanting to read any of the comp.lang.* newsgroups.
Archive-name: computer-lang/pli-faq Posting-Frequency: three-monthly (Jan Apr Jul Oct) Last-Modified: 5 December 2010 Version: 1.71
PL/I is a general-purpose programming language, which is used for solving problems in a variety of fields such as commerce, science (including mathematics, physics, chemistry), engineering (including civil, electrical, aeronautics), medicine and so on. It can be used for system programming, and the facilitites are such that it is rarely if ever necessary to resort to machine-language or assembly-language programming to solve problems.
PL/I has outstanding facilities for commercial and business use.
It has more power than Pascal, Fortran 95, BASIC, C, and
COBOL, and has comparable facilities to Ada.
The main areas where PL/I is superior include interrupt
handling, the built-in debugging aids, the macro
processor facilities, string-handling, and input-output
(see below).
The language has good documenting and self-documenting facilities; programs are easy to read and to understand. It bears some resemblance to Fortran and BASIC.
The language is suitable for beginners, as well as for anyone wanting to become a professional.
Here's a summary of what you'll find in PL/I .
PL/I is available on at least the following systems:
Professional Edition -- Details at the bottom of this posting.
Personal Edition -- details later.
accompanied by the live editor LPEX
This is the sixth alpha version. It is still missing many features, but is working well enough to compile itself and its runtime library. The "release notes" included in the package document some, but not all, of the current restrictions. The 1.0 release is expected to be roughly a "Subset G" compiler. Eventually the compiler will handle the full PL/I language plus extensions from other compilers.
Version 0.6a implements the %REPLACE preprocessor statement, adds the 'FROMALIEN' procedure option to allow calls to PL/I from other languages, and packages the runtime library as a DLL and import library in addition to the previously distributed static object library.
UNIX. Older versions of Micro Focus Open PL/I exist for Unix variants, sold off-the-shelf with limited support. Users can inquire at Micro Focus.
You'll also need the compiler options (flags) to use it. And there's the PL/I Reference Manual in Microsoft Word 6 format as well, but it is only partially complete, having been scanned. Work will restart in the near future to complete this.
All compilers provide enhanced versions of the ANSI standard (the IBM AS/400 adheres to SAA rules, and the DR PL/I compiler implements subset G). There's a summary of what you'll find in PL/I .
Example PL/I source code, to implement the new built-in functions (on systems other than OS/2, VisualAge PL/I for Windows, AIX, and Enterprise PL/I for z/OS, and earlier systems) SEARCH , SEARCHR , and VERIFY (3 argument version) and VERIFYR) (these are in plain text form).
Further PL/I examples of a tutorial nature are an insertion sort and a linked list creation procedure (under construction). In each case, click on the keywords for an explanation.
The IBM products deserve special attention because the same PL/I features are available on z/OS, Windows, and AIX. (they are the OS/2 compiler ported to these other systems).
In the cases of IBM Enterprise PL/I for z/OS, PL/I set for AIX, VisualAge PL/I for Windows, and VisualAge PL/I for OS/2, some important new language features are provided and include:
(this is not an exhaustive list)
There are also some 120 new built-in functions, including extra-special DATE/TIME functions, string-handling functions, housekeeping functions (e.g., where-am-I-called-from?), and ordinal functions (including a function to supply the name of an ordinal!).
Some of the best include:
The following are good PL/I reference manuals. (The new facilities of PL/I for OS/2 are highlighted. Therefore you can use these manuals as references on either mainframe or PC system.)
Yes.
Visit The PL/I Newsletter, No. 11, October 2009.
Visit The PL/I Newsletter, No. 10, September 2008.
Visit The PL/I Newsletter, No. 9, April 2006.
Visit The PL/I Newsletter, No. 8, January 2005.
Visit The PL/I Newsletter, No. 7, December 2003.
Visit The PL/I Newsletter, No. 6, December 2002.
Visit The PL/I Newsletter, No. 5, August 2002.
Visit The PL/I Newsletter, No. 4, November 2001.
Visit The PL/I Newsletter, No. 3, June 2001.
Visit The PL/I Newsletter, No. 2, September 2000.
The PL/I Newsletter, No. 1
was published in July 2000.
There are at least eight of interest:
Other possible sites are as follows:
If you know of any other home pages, please advise the author.
* A PL/I newsgroup was established in January 1996 following the passing on 3 January 1996 of voting for the newsgroup "comp.lang.pl1" (350 votes for, 18 votes against).
* Join PL1-L@listserv.dartmouth.edu on the internet. To subscribe, send a note to listserv@listserv.dartmouth.edu In the body of the note, enter:
SUB PL1-L yourname
To post a comment, send it to pl1-l@listserv.dartmouth.edu
* On Compuserve, enter: go os2df1
Then go to subsection 6: "Rexx and other languages".
See also
PL/I Forums.
* Russian: Discussion of PL/I in Russian takes place on relcom.comp.os.os2.prog
* German: Seems to take place at: de.comp.sys.amiga.misc
* Or consider attending a SHARE PL/I presentation as either a spectator or presenter. Postings appear from time to time in comp.lang.pl1
PL/I came into being as a result of an attempt to produce a revision of FORTRAN in about 1964. Such were the changes necessary that it was not possible to introduce the new features needed to bring FORTRAN up-to-date, and to be compatible with existing programs, that it was decided to introduce a new language that incorporated the best features of the then main languages FORTRAN, COBOL, and Algol.
Originally, the new language was called "New Programming Language", or NPL. However, as these initials were already taken by the National Physics Laboratory in Britain, the name became PL/I (for Programming Language One).
First introduced in 1966, the new language contained features not then seen before in a general-purpose programming language -- including interrupt handling, array operations, list processing, and a macro pre-processor.
There is some controversy over the name -- whether it is PL/I or PL/1. The first manuals (for the first compiler, the IBM PL/I (F) compiler) called it PL/I, not PL/1. The ANSI standard calls it PL/I. The title of the first reference manual is: "IBM System 360 PL/I (F) Language Reference Manual", 1966.
Some are: [this question is under construction]
PL/I Analyzer is a reverse engineeering and re-engineering tool, available from Phoenix Software Technologies, 6701 Democracy Blvd, Suite 300, Bethesda MD 20817, U.S.A. Tel (301) 571-2431 email: info@phoenixst.com
Version 2.0 is the latest, with Year 2000 diagnosis. Phoenix has also released PLI-2000, a tool for locating Year 2000 problems.
Phoenix Software Technologies provide tools and services for Software Maintenance, legacy Software reengineering and the Year 2000 (Y2K, Millennium) Problem including PL/I and Natural/Adabas.
Micro Focus offers tools to accompany PL/I for OS/2. For more infomation, contact them at Suite 400, 2465 East Bayshore Road, Palo Alto, CA 94303, U.S.A. Micro Focus
PLIFORM is a PL/I source code formatter, available from Magicon, Inc. You'll find them at: 1124 Linda Drive, Campbell, California 95008-4507, U.S.A.
Peter Osterman's PL/I source code reformatter.
The PL/I source code reformatter for Windows (formpli3.exe,
414k self extracting file) created by Peter Ostermann of Germany
is now freeware.
The
PL/I source code formatter
can help make jumbled code more readable by putting statements
on separate lines and pointing out the nesting levels by indention.
The reformatter is a stand-alone product, is easy to use, and
does the job in a few seconds. It requires just one megabyte
of disk space, so give it a try.
Send suggestions or comments to: info@pkf-ostermann.de
More information and download on Peter's personal web page.
This PL/I package from Eberhard Sturm implements the REXX parse macro on the mainframe and the workstation.
The above two translators are useful for converting old codes. Of course, it isn't always necessary to do a conversion, because some PL/I compilers (in particular IBM compilers) produce code that can call Fortran procedures and C procedures.
A white paper on object-oriented PL/I programming.
The paper PL/I for OS/2 by R. Vowels describes the new features
of PL/I for OS/2. It
appeared in ACM SIGLAN Notices, Vol. 31 No. 3, March 1996.
http://portal.acm.org/citation.cfm?id=227724&type=pdf
An interesting article on PL/I appeared in the Enterprise Systems Journal in December 1995. You can view it at: In Praise of PL/I
Has the King Returned? by Conrad Weisser makes interesting reading. (ACM SIGPLAN Notices, Vol. 28 No. 4, April 1993.)
Why not take a look at the paper Power vs Adventure -- PL/I and C ?
Another paper on PL/I and C is Richard Perkinson's To 'C' or Not to 'C'.
F. J. Corbato's paper on choice of PL/I as a systems programming language.
IBM PL/I provides compatible, cross-platform, cross-product compilers that support z/OS, OS/390, VM, VSE/ESA, AS/400, AIX, and Microsoft Windows NT and Windows 2000. To order IBM PL/I, contact IBM in your country.
Micro Focus' Open PL/I may be purchased from Micro Focus.