Q. | What is PL/I? |
A. | PL/I (pronounced Pee Ell One) is possibly the most powerful compiled programming language.
Other languages with more features are interpreted, at a cost in speed,
or depend on non-standard libraries to implement features that are integrated
in PL/I. |
Q. | What standards does Iron Spring PL/I implement? |
A. | ANSI standard X3.53-1976 (ISO 6160:1979) specifies the "full" PL/I
language. ANSI standard X3.74-1987 (ISO/IEC 6522:1992) specifies the "PL/I General-Purpose
Subset", better known as "Subset G". Iron Spring PL/I beta does not yet
completely implement either standard, but goal is to implement
the Subset G standard with extensions from IBM and other popular PL/I compilers.
|
Q. | On what systems does Iron Spring PL/I run? |
A. | The current version of Iron Spring PL/I runs on Linux,
and OS/2 Warp and later distributions.
|
Q. | Is Iron Spring PL/I open source? |
A. | The compiler is currently closed-source.
The source for the library has been released under the Gnu "Lesser General Public License" (LGPL).
The library is licensed this way to allow unrestricted distribution of programs
linked with it, to allow users to modify and extend the facilities provided, to assist developers
of other PL/I compilers provide compatibility, and to supply examples of PL/I coding.
|
Q. | Does PL/I work with <my favorite language>? |
A. | The current version of Iron Spring PL/I implements the OS/2
"system" calling sequence, so PL/I programs can call functions coded in C or other languages that
support that calling sequence. It also supports an option to allow callbacks from C
and other language functions to PL/I, as long as the main program is PL/I.
PL/I supports a much wider variety of data types than C; PL/I support for other
languages is limited to data types those languages support. Calling PL/I procedures
from main programs coded in other languages is not supported.
|
Q. | Will Iron Spring PL/I compile my mainframe programs? |
A. | One of the design goals was to provide source compatibility with
IBM "PL/I for MVS and VM", one of the most popular mainframe compilers. File
declarations and OPEN statements will probably require changes. Major features
not implemented by the current version include the
DL/I and CICS preprocessors. The compiler has successfully compiled programs
written for PL/I for MVS and VM, the Optimizer, and PL/I(F) with
only minimal changes. Many features of IBM's newer "Enterprise" PL/I compilers are
not supported.
The object code produced by Iron Spring PL/I is not compatible with that produced
by any of IBM's compilers.
|
Q. | Can I use my mainframe data with Iron Spring PL/I? |
A. | Iron Spring PL/I uses the ASCII character set and native x86 data formats. There is
native support for IBM packed decimal data. In general you will probably need to buy
or write a program to transfer the data. If there is enough demand we may
supply a program which will read a PL/I record-description structure and perform the
appropriate data conversions. If you write something of general usefulness,
we will be happy to host it under "Free Stuff" and give you credit.
|
Q. | How much does the compiler cost? |
A. | Iron Spring PL/I is free for non-commercial and hobbyiest use.
The price of the commercial version has not yet been determined, but will be
approximately two orders of magnitude less than IBM's compiler for Windows.
Academic, Government, and Volume licenses will be available.
A CD will be available at additional cost.
The run-time library carries no separate license charge, so programs compiled with Iron
Spring PL/I can be distributed under whatever terms their authors specify.
|