Path: utzoo!attcan!uunet!ncrlnk!ncrcae!hubcap!gatech!udel!burdvax!emerald!dave From: dave@emerald.PRC.Unisys.COM (David Lee Matuszek) Newsgroups: comp.lang.misc Subject: Re: Structured loops (WAS:Re: Turing programming language.) Keywords: programming language Message-ID: <9045@burdvax.PRC.Unisys.COM> Date: 25 Jan 89 16:44:07 GMT References: <11@euteal.UUCP> <89Jan20.111000est.4328@turing.toronto.edu> <12@euteal.UUCP> <7053@june.cs.washington.edu> Sender: news@PRC.Unisys.COM Organization: Unisys Corporation, Paoli Research Center; Paoli, PA Lines: 26 In article <7053@june.cs.washington.edu> pardo@cs.washington.edu (David Keppel) writes: >There is a more general construct that I've not seen in any existing >programming languages, although (a) doubtless it exists and (b) the >idea is easily a decade old (ok, probably 30, but I *know* at least >10) Substitute your favorite C/Pascal/Lisp/Smalltalk syntax. In >meta-Algol: > > do ... while boolean ... od; This is the same as the loop ... exit when ... end loop; except that the sense of the test is reversed. This exists in Turing. It also exists in an in-house language I designed and implemented a couple of years ago. I don't know of any other languages that use it, however. I checked a little further and found that Knuth (Structured Programming with go to Statements, ACM Computing Surveys, v6, n4, December 1974, p. 261-300; see page 279) credits Ole-Johan Dahl with "recently" inventing: "loop; S; while ~B; T; repeat;", but he does not cite a reference. (He strongly implies that the negation on the B is important, but when I read the paragraph carefully I found it very ambiguous as to just what he thought was better.) -- Dave Matuszek (dave@prc.unisys.com) -- Unisys Corp. / Paoli Research Center / PO Box 517 / Paoli PA 19301 -- Standard disclaimer: Any resemblance between my opinions and those of my employer is strictly coincidental.