| Newsgroups |
gmane.comp.emulators.hercules390.mvs |
| Message-ID |
<[email protected]> |
>Hello!
>I know what most of the PL (whatever) languages are, but I am
>wondering how many of the group would know what that one is. How about
>explaining to us what that dialect is.
>
>For my part I would give anything for both a HAL/S compiler and
>extensive documentation for VM/370 Release 6, and even a PL/Z one of
>both.
>-----
>Gregg C Levine [email protected]
>"This signature fought the Time Wars, time and again."
PL/AS was a follow-on to PL/S3 and was superseded by PL/X. I did
extensive programming in PL/X back in the 80's and 90's when I was
working for IBM. The compiler and the documentation were IBM Confidential.
It had typical high-level language constructs, but was actually a fairly
low-level language. There were no I/O routines or data conversion
functions built in. It didn't support floating point variables. You
could imbed assembler code inline with PL/X code. To call system
functions to allocate memory, perform I/O, etc., you could define
certain variables as being assigned to certain registers and then enter
assembler-level statements, but using PL/X syntax. Stuff like:
Restrict (R0, R1, R15); /* don't remember the exact syntax */
R0 = some_value;
R1 = Addr(some_parameter_block);
SVC(120);
IF R15 = 0 THEN DO;
goodness code
ELSE DO;
handle error condition
END;
UnRestrict (R0, R1, R15); /* don't remember the exact syntax */
I guess you could say that it was a structured, high-level assembler
language.
The output of the compiler was assembler code. Creating an executable
program consisted of 3 steps:
1) Compile
2) Assemble (we used Assembler H in those days)
3) Link edit
It had a fairly powerful macro language that was run as a preprocessor
stage. I wrote a lot of PL/X equivalents of various assembler macros to
make things easier: like GETMAIN, FREEMAIN, OPEN, CLOSE, PUT, GET, READ,
WRITE, etc. (I suppose there were official PL/X versions of those
macros but either they were in a restricted library that I didn't have
access to or I just liked to roll-my-own. Don't remember at this point.)
Back when MVS was our primary operating system I wrote a bunch of ISPF
dialogs in PL/X for invoking the tools we used.
There was also a version of the compiler for AIX. For that version, to
do system-level stuff, you called C function library routines from
PL/X. They created a new string type, STRINGZ, or some such, to tell
the compiler that these were C-style null-terminated strings.
At one time I had an OS/2 version of the PL/X compiler on my home PC.
Charles Bailey