[TUHS] The UNIX Command Language (1976)

arnold at skeeve.com arnold at skeeve.com
Wed Dec 2 01:38:21 AEST 2020

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. :-)



Jim Capp <jcapp at 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 at shalott.net 
> To: tuhs at 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 

More information about the TUHS mailing list