In the late 70s and early 80s, structured programming was on the
ascension, but had not completely captured the minds of all computer
scientists and programmers. (cf. Knuth's "Structure Programming with
Goto Statements" article.)
It was recognized that goto was not necessary if one had proper control
structures in a language (if/else, while), and that code with no (or
minimal) gotos was easier to read and understand.
So this kind of thing was "in the air" when Bourne wrote the V7 shell.
If he's on this list, it'd be nice to hear directly from the source. :-)
HTH,
Arnold
Jim Capp <jcapp(a)anteil.com> wrote:
Is it possible the elimination of the GOTO statement
in the Bourne Shell
was related to a Letter to the Editor in Communications of the ACM, March 1968:
"Go To Statement Considered Harmful," by E. Dijkstra.
Jim
From: jason-tuhs(a)shalott.net
To: tuhs(a)minnie.tuhs.org
Sent: Monday, November 30, 2020 10:59:18 PM
Subject: Re: [TUHS] The UNIX Command Language (1976)
"The UNIX Command Language is the first-ever
paper published on the Unix
shell. It was written by Ken Thompson in 1976."
https://github.com/susam/tucl
Thanks for that.
This reminded me that the Thompson shell used goto for flow control, which
I had forgotten.
Bourne commented on the omission of goto from the Bourne shell, "I
eliminated goto in favour of flow control primitives like if and for.
This was also considered rather radical departure from the existing
practice."
Was this decision contentious at all? Was there a specific reason for
goto's exclusion in the Bourne shell?
Thanks.
-Jason