PL/I as a Tool for System Programming (1969)
web.archive.org
web.archive.org
CS 101 at my college was "IBM 370 Assembly Language". Then we moved on to PL/I.
And it was on punch cards.
It seems that PL/I wasn't a good choice in hindsight, being too complex to implement a compiler quickly, given the memory constraints back in the day.
I posted this because I was interested in a comment about Multics that stated that PL/I's design prevented memory access bugs, because it had variable length arrays/strings(?), and not C's zero-terminated strings. Of course C/unix was a better choice for the memory-limited systems of the day than the relative behemoth that was PL/I/Multics.
I bet they still feel nostalgic whenever they see `proc options(main)` or `put skip edit` though.
I believe that VAX/VMS was based on some of these experiences plus careful reading of Structured Programming by Djikstra.
Unfortunately, DEC didn't grok the performance issue of microcoded CISC and Sun Sparc ate their lunch.
Lessons DEC learned:
. Combining engineering of hardware and software at the same time . Networking as a medium of exchange including for storage (cluster interconnect, C I) . Diverse software support, from C, PL/I, Cobol, etc . VAXcluster as a means to converge management, storage, scalability, and so on
Novel tech:
. Software-supported coding, such as language-sensitive editing, w/o emacs . A basic data architecture, based on Rdb. Weak, but sort of functional
Oopses: . RISC. Eventually they made Alpha but FP sucked, even architecturally
I must be one of the few on hn who has actually programmed in Pl/1 on a system (Prime 750's) that used it as its systems programming language.
It is a Dream Language it just F&%ing works
And in my experience Primes pl1/g Compiler did properly assume what a sane developer would want - well there was that one time I had to recompile the entire Pl1 part of our MR system and push it out to all 17 systems :-)
telnet em.prirun.com 8002 for the subset G compiler
telnet em.prirun.com 8005 for the full PL/I compiler
Emacs is also installed on the first machine running rev 20 Primos, but not quite on the second running rev 23 Primos because I didn't have all the pieces.
Enjoy!
I had forgotten about 'put skip edit'.
I have no memory of what it was for. However, I'm sure some fine gray(er)beard will remind me here! ;-)