PL/I, in the form of Cornell’s PL/C was the language we learned in CSC 101H at NC State*
in Fall 1976.
At some point I was possessed to buy from the local IBM office a copy of "OS PL/I
Optimizing Compiler: Execution Logic". I see that a 1985 version of that is here:
http://bitsavers.trailing-edge.com/pdf/ibm/370/pli/SC33-0025-3_PLI_Optimizi…
454 pages. Lots of ASCII (well, EBCDIC?) diagrams and flowcharts. See pages 31 and 151
for two examples.
In a comparative languages class that I’ve taught at the U of Arizona, I've described
PL/I as an example of what can happen when a language designer incorporates a number of
good features from other languages: you get a Frankenstein. Support for `PIC` formatting
comes to mind as one of the things borrowed from COBOL.
IIRC, and it’s a dim memory of a then-freshman, an interesting thing about PL/I is that it
has no reserved words. You can say something like `if else = if then while = returns +
return;`
PL/I also has a macro facility that I only "got" years later, when learning C.
Hmm...no PL/I examples in
https://rosettacode.org/wiki/Metaprogramming. I wish I had a
clone to give that task.
Very conveniently, PL/I has a `put data;` statement that prints the value of all variables
in scope.
A friend at NCSU in the 70s, Billy Willis, used PL/M on maybe a PDP-11 for a system he
wrote to support his dissertation in chemical engineering.
William Mitchell
Mitchell Software Engineering
Occasional Adjunct Instructor at U of AZ CS
520-870-6488 (m)
Discord: whm#5716, Twitter: @x77686d, Skype: x77686d
linkedin.com/in/x77686d
*Go Wolfpack; beat Purdue!