Re: Class Notes for a PL/I Course.
"Giuseppe Vitillaro giuseppe-yuD/ahkh7LvrZ44/[email protected] [H390-MVS]" <[email protected]> Sun, 6 Oct 2019 11:26:08 +0200 (CEST)
| Newsgroups | gmane.comp.emulators.hercules390.mvs |
|---|---|
| Message-ID | <[email protected]> |
On Sun, 6 Oct 2019, Giuseppe Vitillaro giuseppe-yuD/ahkh7LvrZ44/[email protected] [H390-MVS] wrote: > On Sat, 5 Oct 2019, Joe Monk [email protected] [H390-MVS] wrote: > >> "I can't picture why and how IBM forget to implement >> these primitive structured programming loop tokens in >> the PL/I (F) compiler. The only way to implement them >> is using GOTO, I can't figure out any other way." >> >> The concepts didnt exist :) thats why theyre not implemented. The concept >> came about with standardization of PL/I, which led to the >> checkout/optimizing compilers. >> >> Joe > > It looks: > > PL/I(F) 1966 IBM - New York Programming Center - Hursley (UK) > BCPL 1967 Martin Richards - University of Cambridge > C 1972 Dennis Ritchie - AT&T Bell Labs > > you are in some way right, Joe, they didn't exist at > the time PL/I(F) has been written (1966). > > But I would think they had been implemented somewhere > between PL/I and C, BCPL looks like a nice candidate > and 1967 a possible reference date. > > Is it possible newer PL/I versions got LEAVE/ITERATE > from BCPL? > > Peppe. > > > Well https://www.bell-labs.com/usr/dmr/www/bcpl.pdf [page 19]: "Syntactic form: break Semantics: When this statement is executed it causes execution to be resumed at the point just after the smallest textually enclosing loop command. The loop commands are those with the following key words:until, while, repeat, repeatwhile, repeatuntil and for" the document, from Martin Richards himself, is dated "July 21, 1967", so right after PL/I(F), BCPL already had "break", the very same token used later in C language by Dennis Ritchie (1972), not an accident of course. It looks I'm not such far from the correct sequence of events? People was already using PL/I(F) WHILE loops in 1966 and lacked a structured way to "break" a loop, without using GOTO? Not such different from what just happened to me writing VS2FB/FB2VS I/O loops in PLI(F)? By the way, a question. Any book around where the history of relationships between those languages and environments is well documented, with dates and facts? Peppe.