Q. | What is this PL/I anyhow? |
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 the release version should 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 eComStation.
|
Q. | Is Iron Spring PL/I open source? |
A. | The compiler is 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 PL/I preprocessor, and the
DL/I and CICS preprocessors. That being said, 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. | Sure, but just downloading the data may not give you the results you want.
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 I may code a program which will read a
PL/I record-description structure and perform the appropriate data conversions. If you write something
of general usefulness, I'd be happy to host it under "Free Stuff" and give you credit.
|
Q. | Sounds good, how much does the compiler cost? |
A. | The current beta version is a free download.
The price of the release 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 of the release version 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.
|