PL360 Compiler
The original source for this material was obtained from the pl360.tar.gz archive in the public directory at:
I am not sure that this server is still "online", but I am leaving this as documentation of the source for this material.
When I originally obtained this archive, I converted each of the text files from EBCDIC to ASCII and added CR/LF pairs so that the files may be opened and viewed more easily using the tools most people will have at hand. The source archive from Stanford also contained a couple of compiled object modules (suitable for input into the Link Editor or Loader) which I have left in their EBCDIC form. Thus converted, the archive is available for download from this site as:
pl360.tar.gz [MD5: 3766622D5FC2CBF1D8A5956EFF36670D]
which contains the following files:
manual.prn - formatted print file containing PL360 manual
bcdval.pl3 - PL360 routines to convert numbers to/from real, complex, and double precision numbers as human readable strings in a format more familiar to FORTRAN and PL/1 programmers
bisearch.pl3 - PL360 routine implementing a binary search on a table with keys
pl360src.pl3 - PL360 source for the January, 1990 version of the Stanford PL360 compiler
runlib.pl3 - PL360 routine providing the functions of bcdval.pl3, bisearch.pl3, and shelsort.pl3 combined into a single module
shelsort.pl3 - PL360 routine implementing a simple shell sort algorithm
synproc.pl3 - PL360 routine implementing a simple precedence syntax processor
cmsinter.bal - Assembler language routines to interface the PL360 compiler to CMS
dosinter.bal - Assembler language routines to interface the PL360 compiler to DOS
dospl360.bal - Assembler language I/O routines for simple read/punch/write input/output from compiled PL360 programs to DOS
dosplio.bal - Assembler language I/O routines for tape/disk input/output from compiled PL360 programs to DOS
mtsinter.bal - Assembler language routines to interface the PL360 compiler to MTS
mvsinter.bal - Assembler language routines to interface the PL360 compiler to MVS
mvspl360.bal - Assembler language I/O routines for tape/disk input/output from compiled PL360 programs to MVS
mvsplio.bal - Assembler language I/O routines for tape/disk input/output from compiled PL360 programs to MVS
orvinter.bal - Assembler language routines to interface the PL360 compiler to Orvyl
orvrunti.bal - Assembler language routines to interface compiled PL360 programs to Orvyl
pl3link.jcl - JCL to link-edit compiled PL360 programs
proclib.upd - IEBUPDTE input to add procedure library members for PL360
grammar.bnf - a formal BNF type grammar for the PL360 language which may be processed by synproc.pl3
pl360n1.txt and pl360n2.txt - notes on Stanford modifications to PL360
Phil Roberts subsequently put together another distribution of PL360, which he built from the original EBCDIC sources. His archive is available for download from this site as:
PL360 for MVS.zip [MD5: b7256c3cd315036ca7e94141e297788b]
Quick start instructions for Phil's distribution:
Download the archive to your computer.
Uncompress the archive.
Edit reload jobstream - iebcopyr.jcl - to make changes required for your Hercules/MVS configuration.
Submit reload jobstream to install compiler source and load module.
Edit installation verification jobstream - pl360job.jcl - to make changes required for your Hercules/MVS configuration.
Submit installation verification jobstream to compile/run magic squares program.
The archive also contains a jobstream that compiles/executes the 99bottles program from https://www.99-bottles-of-beer.net/ (99bottles.jcl).
I hope that you have found my instructions useful. If you have questions that I can answer to help expand upon the information I have included here, please don't hesitate to send them to me: