Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!ub.d.umn.edu!cs.umn.edu!thornley From: thornley@cs.umn.edu (David H. Thornley) Newsgroups: comp.lang.misc Subject: Re: Complexity of syntax Message-ID: <1990Dec9.013923.14456@cs.umn.edu> Date: 9 Dec 90 01:39:23 GMT References: <9012061208.AA08577@decpa.pa.dec.com> Organization: University of Minnesota, Minneapolis - CSCI Dept. Lines: 39 In article <9012061208.AA08577@decpa.pa.dec.com> diamond@tkou02.enet.dec.com ("diamond@tkovoa") writes: >Most of the syntax of C is not particularly difficult. >However, there is some pretty solid evidence about the declaration syntax. >For how many languages have people written, and recommended to others to >use, programs that translate declarations to English and vice-versa? > How many languages support arrays of pointers to functions returning pointers to functions that return pointers to integers? If you limit yourself to data structures that would work in FORTRAN or Pascal, you have no need for such programs. >Also I vaguely recall some customer of the Unix operating system and C >language having a small problem, because one of their programmers put a >"break" statement in a compound statement, but it was the wrong kind of >compound statement so the "break" exited from a larger one instead. > AT&T, I think. (Some phone company, anyway.) It wasn't a "small" problem either :-). From what I saw of it, it looked like the sort of mistake that could happen with any language, and was due to misunderstanding the language and failing to test the part that failed. I assume you've heard about DO 10 I = 1. 10 (parsed as DO10I = 1.10) ad nauseum. Weinberg, in _The_Psychology_of_Computer_Programming_, had a nice story about a FORTRAN program where a variable in a massive simulation program had been spelled two different ways in the program. The bug was found after the simulations had been conducted, a book written, and a couple of systems designed based on that information. >Other syntactic structures that are equally complex could provide better >detection and recovery from user errors. > No doubt. How much better? Enough to justify moving *lots* of software from C? How about FORTRAN? Actually, simply requiring *all* variables to be declared would solve a *lot* of problems, and break a *lot* of existing code. DHT