2010-10-02 04:23:45 UTC
Last-Modified: 1 April 2010
FREQUENTLY-ASKED QUESTIONS & ANSWERS
(Q1) What is PL/I?
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 can be used for commercial data processing, numerical methods,
text processing, list processing, system programming,
real-time system programming, and picture file processing,
to mention a few specific applications.
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 for a link to a summary).
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.
For anyone writing programs, a PL/I compiler is a "must have".
There's a summary of what you'll find in PL/I at:
(Q2) On what systems is it available?
PL/I is available on at least the following systems:
IBM PC and compatibles (80x86).
* IBM VisualAge PL/I: is available in 2 versions:
Professional Edition } Details at the bottom of this posting
Personal Edition }
accompanied by the
live editor LPEX
---available from IBM
* Ironspring PL/I runs on OS/2. Free download at
21 May, 2009: PL/I beta version 0.8a released.
This version adds list-directed input, the DISPLAY statement,
and the condition-handling builtins ONCHAR, ONCODE, ONCOUNT,
ONFILE, ONKEY, ONLOC and ONSOURCE.
A cross-reference listing can now be produced, and subscripted label
constants are supported.
ELF object files can now optionally be generated in addition to the
A full list of enhancements and bugs fixed is available in the
"readme" file in the zip.
The older Version 0.6a added the %REPLACE preprocessor
statement, 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.
* Micro Focus Open PL/I, for Intel running Windows XP, 2000, Me/98.
Comes with Codewatch, Micro Focus' powerful GUI source code
debugger. (Open PL/I was acquired from Liant Software
---available from Micro Focus.
(their PL/I generally is available on Unix-based systems)
See <A HREF = "http://www.microfocus.com/products/OpenPLI/index.asp">
Micro Focus' Open PL/I</A> for a full range of PL/I products,
which are available on HP-UX, Windows XP and Vista,
Sun Sparc Solaris 2.x, Intel SuSE Linux, and Intel
See http://microfocus.com:80/Liant/index.asp where they say:
"Open PL/I® is a robust and flexible development system that
allows PL/I mainframe users to rehost existing
PL/I applications to open systems environments. Open
PL/I empowers PL/I mainframe users to migrate legacy
applications to open systems, while controlling risks
and costs. Open PL/I is the only proven multi-platform UNIX
and Windows PL/I solution in the marketplace today."
See also: http://microfocus.com/products/OpenPLI/index.asp
* Windows NT -- available from IBM as VisualAge PL/I Professional
and Personal editions, with the live parsing editor LPEX.
* Micro Focus Open PL/I for Redhat Linux (Intel).
* Solaris ix (Intel)
--- available from IBM.
--- The followIng versions are available from IBM:
IBM Enterprise PL/I for z/OS and OS/390
provides access to DB2, CICS, IMS, and other data and
* VisualAge PL/I for OS/390
* PL/I for MVS & VM
* PL/I for VSE
* PL/I for VSE/ESA is for MVS & VM
* IBM OS/390 (IBM z/OS) available as Enterprise PL/I.
HP 9000 HP-UX
--- available from Liant Software Corporation.
Comes with Codewatch, Liant's powerful GUI source code debugger.
Older versions of Micro Focus Open PL/I exist for Unix variants,
sold off-the-shelf with limited support.
SPARC Solaris 2.x
--- available from Micro Focus Software Corporation.
Comes with Codewatch, Micro Focus's powerful
GUI source code debugger.
IBM RS/6000 AIX
--- available from Micro Focus;
Comes with Codewatch, Micro Focus's powerful GUI source
--- also available from IBM as Enterprise PL/I.
Data General AViiON with DG-UX
--- available from Micro Focus.
Comes with Codewatch, Micro Focus's powerful GUI source
Compaq (formerly Digital Equipment Corporation) on Open VMS and Alpha
AXP systems (Tru64 Unix)
---The compilers from Kednos Corporation for these systems are
called "PL/I for Open VMS" and "PL/I for Tru64 Unix"
respectively. They took over support for PL/I from UniPrise.
Take a look at Kednos' web page: http://www.kednos.com
for manuals and compilers.
For infomation, contact ***@kednos.com
Stratus Technologies under Stratus VOS operating system.
--- available from Stratus Technologies,
111 Powder Mill Road,
Maynard, Massachusetts 01754.
Wang/Getronics systems. Recent updates make the compiler Y2K compliant.
--- available from Wang Laboratories, Billerica, Mass.
Fujitsu-Siemens BS2000 system.
--- visit them at:
where you can download a specification brochure in PDF format.
(Q3) How can I try out PL/I?
There's the original Digital Research PL/I for DOS at:
Make sure you get the PL/I library and all the other stuff.
DR PL/I is a subset of PL/I, of course, because it had to fit
in 64K originally (I think).
Other sites also had it, but may no longer be active:
It's a subset of PL/I, of course, because it had to fit
in 64K originally (I think). There's the original manual too,
in MS Word 6 format, but as it's been scanned, it is incomplete.
The corresponding PL/I Reference Manual is in Microsoft Word 6 format,
If that mirror site is down, you could try to link to the main site at:
but as there have been problems connecting to it, don't count on it.
Find the PCDOS section, and then check out DOWNLOADS.
Be sure to download the utilities (including the linker)
as well as the compiler and sample codes.
You'll also need the compiler flags to use it, at:
If you want the CP/M-86 PL/I compiler:
On the VMS platform, either VAX or Alpha --
For personal use, the Kednos PL/I compiler
and documentation may be downloaded free from http://www.kednos.com .
To run the free version, you will need a
Hobbyist license, which may be obtained by following the links
at http://www.kednos.com .
If you don't have VMS, you can run the CHARON VAX emulator on W2K.
Here's another suggestion from From: "Tom Linden" <***@kednos.com>,
Kednos Date: Sat, 08 Oct 2005 08:17:57.
Purchase either PWS xxx (where xxx = 433, 500 or 600)
or XP1000 Alpha box, you can probably get one for $200 to $600
off ebay, install Hobbyist version of VMS and Hobbyist version
of PL/I, both free and you will have a far superior environment.
You will never see a BSOD and you will never get hacked.
Install WASD web server, also free, you will have a hack-proof
high performance web server.
There is also a lot more freeware available.
Ironspring PL/I, runs under OS/2. Free download from
It's still under development, implements most of PL/I.
(Q4) What do the compilers provide?</H3>
All compilers provide enhanced versions of the ANSI standard
(the IBM AS/400 adheres to SAA rules, and DR PL/I implements
the subset G). There's a
summary of what you'll find in PL/I at:
Example PL/I source code, to implement the new built-in functions
(on systems other than OS/2, VisualAge for Windows, AIX systems
and Enterprise PL/I for z/OS, and earlier systems) for:
The SEARCH built-in function:
The SEARCHR built-in function at:
and the VERIFY (3 argument version) and VERIFYR built-in functions at:
(these are in plain text form).
Further PL/I examples of a tutorial nature are at
(an insertion sort), and a
(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:
(a) strongly-typed list processing in which the pointers
(handles) are bound to the structures with which they
(c) user-defined types;
(d) Unsigned integer type;
(e) New DO loop options that cause the loop to
terminate without overrunning the limit (specifically
for ordinals and unsigned integers); and
(f) A much-enhanced macro-processor.
(g) A data type DATE for handling two-digit and
four-digit years that,
together with new date functions, are
known as the Millennium Language Extensions.
(h) Initial support for wide character set, enabling such files to be
read and written. A number of new built-in functions for
wide characters is provided.
(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!).
(Q5) What textbooks are available?
Some of the best include:
R.A. Barnes, PL/I for Programmers, North-Holland, 1979.
J.K. Hughes, PL/I Structured Programming, 3rd Ed., Wiley, 1986.
G.F. Groner, PL/I Programming in Technological Applications,
Books on Demand, Ann Arbor, MI, 1971.
M.E. Anderson, PL/I for Programmers, Prentice-Hall, 1973.
D.R. Stoutemyer, PL/I Programming for Engineering & Science,
R. Reddy & C. Ziegler, PL/I: Structured Programming and
Problem Solving, West, 1986, ISBN 0-314-93915-6.
Check out the Table of Contents:
E. J. Newhold & H. W.Lawson, The PL/I Machine, Addison-Wesley,
Reading (Mass), 1971.
E. Sturm, The New PL/I ... for PC, Workstation and Mainframe,
Vieweg-Teubner, Wiesbaden, Germany, 2009.
E. Sturm, Das neue PL/I (fur PC, Workstations und Mainframe)
(in German language), 7th Ed.,
See the table of contents at:
R. A. Vowels, http://members.dodo.com.au/~robin51/PLI-BOOK.HTM
Introduction to PL/I, Algorithms, and
Structured Programming, 3rd revised Ed.,
ISBN 0-9596384-9-0. 600+ pages, A4 size.
See a list of the main algorithms at:
Comes with a disc containing all the programs,
procedures, and functions from the book. The
disc was first published in October 1996, and
was last updated in January 2005.
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
IBM, PL/I for OS/2: Language Reference, 1994 edition
IBM, PL/I for OS/2: Built-in Functions, 1994 edition
IBM, VisualAge PL/I Language Reference, Version 2.1, 1998 edition.
(Q6) Is there a newsletter?
The October 2009 issue of "The PL/I Newsletter" may be viewed at:
The June 2008 issue of "The PL/I Newsletter" may be viewed at:
The April 2006 issue of "The PL/I Newsletter" may be viewed at:
The January 2005 issue of "The PL/I Newsletter" may be viewed at:
The December 2003 issue of "The PL/I Newsletter" may be viewed at:
The December 2002 issue of "The PL/I Newsletter" may be viewed at:
The August 2002 issue of "The PL/I Newsletter" may be viewed at:
The November 2001 issue of "The PL/I Newsletter" may be viewed at:
The June 2001 issue of "The PL/I Newsletter" may be viewed at:
The September 2000 issue of "The PL/I Newsletter" may be viewed at:
You may download the July 2000 issue from:
(Q7) Is there a home page?
There are at least eight of interest:
IBM's PL/I Home page. Click on the
"about" button for the "What is PL/I" page.
Click on the "Library" button for PL/I Reference
Manuals for various IBM platforms.
What is PL/I ? </A> gives you an overview of PL/I.
http://www.liant.com Liant Software Corporation
(then click on the LPI button)
(then select OpenVMS ..., or you may find the direct
link quicker ->
Yahoo's Language directory </A>
Or if you prefer, you can start on
Yahoo's main directory and take
it from there. When the Languages display comes up, go beneath the
main list, where you'll find PL/I. Click on that, and then you can
go to different sites.
Peter Flass's PL/I home page.
A mirror site for Robin Vowels' site.
Why not use PL/I </A>?
Other possible sites are as follows:
If you know of any other home pages, please advise the author.
(Q8) Where can I find discussion groups?
* 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
* Join PL1firstname.lastname@example.org on the internet.
To subscribe, send a note to ***@listserv.dartmouth.edu
In the body of the note, enter:
SUB PL1-L yourname
To post a comment, send it to email@example.com
* On Compuserve, enter: go os2df1
Then go to subsection 6: "Rexx and other languages".
See also http://www.software.ibm.com/ad/pli/pliforum.htm
* Russian: Discussion of PL/I in Russian takes place on
* 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
(Q9) How did PL/I originate?
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 controvesy 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
"IBM System 360 PL/I (F) Language Reference Manual", 1966.
(Q10) What tools are available?
Some are: [this question is under construction]
PL/I Analyzer is a reverse engineeering and re-engineering tool,
Phoenix Software Technologies, 6701 Democracy Blvd,
Suite 300, Bethesda MD 20817, U.S.A. Tel (301) 571-2431
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 provides 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.
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 reformatter at:
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 standalone 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: Peterfirstname.lastname@example.org
for 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:
(Q11) What resources are available?
* A library of numerical procedures is available at the
* Examples of PL/I codes are to be found at the Wiki Rosetta page:
This site gives examples of codes in various languages. Choose
"By language" from the directory at the left-hand side, near the top,
and then choose PL/I. Here you'll find over 100 PL/I solutions
You'll find more at the PL/I Resources Page:
(Q12) What's happening? What conferences?
Find out what's new?
(Q13) Where can I read about PL/I?
* The URL http://www.ionet.net/~mclapper/
is a white paper on object-oriented PL/I programming.
The paper </i>PL/I for OS/2</i>by R. Vowels describes new features
of PL/I for OS/2. It
appeared in ACM SIGLAN Notices, Vol. 31 No. 3, March 1996.
Do a Google search for "PL/I for OS/2".
* An interesting article on PL/I appeared in the Enterprise
Systems Journal in December 1995. You can view Lou Marco's
"In Praise of PL/I" at:
* Has the King Returned? by Conrad Weisser makes interesting reading.
ACM SIGPLAN Notices, Vol. 28 No. 4, April 1993.
Do a google search for "Has the King Returmed".
* 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
is worth a read.
(Q14) Is there any implementation of Object-Oriented Programming?
Patrick Senti implemented a precompiler to PL/I to support
object-oriented programming in PL/I - in 1994. He has contributed
it to the open source community and made it available at
(Q15) How can I order PL/I?
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
Note that Kednos PL/I is free for non-commercial use,
and that Ironspring PL/I compiler is free.
You may read this in http://members.dodo.com.au/~robin51/pli_faq.htm
Also at the mirror site at: