From: "William H. Mitchell" <whm@msweng.com>
To: Computer Old Farts Followers <coff@tuhs.org>
Subject: [COFF] Re: Of PL/I
Date: Tue, 2 Apr 2024 13:31:20 -0700 [thread overview]
Message-ID: <44286CEB-4014-442D-8DA9-6496C39AEAC1@msweng.com> (raw)
In-Reply-To: <e824b8b9-9eb2-7a7c-bc90-6c10ba08ab2d@riddermarkfarm.ca>
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_Optimizing_Compiler_Execution_Logic_Sep85.pdf 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!
prev parent reply other threads:[~2024-04-02 20:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-02 15:06 [COFF] " Dave Horsfall
2024-04-02 16:40 ` [COFF] " Clem Cole
2024-04-02 17:01 ` Charles H Sauer (he/him)
2024-04-03 16:18 ` Paul Winalski
2024-04-03 17:30 ` segaloco via COFF
2024-04-03 20:44 ` Paul Winalski
2024-04-04 3:37 ` Wesley Parish
2024-04-04 15:40 ` Paul Winalski
2024-04-04 22:53 ` Peter Pentchev
2024-04-07 23:10 ` Dave Horsfall
2024-04-07 23:25 ` Charles H Sauer (he/him)
2024-04-09 21:41 ` Stuff Received
2024-04-10 0:50 ` [COFF] SNOBOL, ICEBOL, SPITBOL, et al William H. Mitchell
2024-04-10 1:42 ` [COFF] " Dave Horsfall
2024-04-08 1:13 ` [COFF] Re: Of PL/I Paul Winalski
2024-04-02 19:25 ` Stuff Received
2024-04-02 20:31 ` William H. Mitchell [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44286CEB-4014-442D-8DA9-6496C39AEAC1@msweng.com \
--to=whm@msweng.com \
--cc=coff@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).