Xref: utzoo comp.lang.modula2:1244 comp.lang.c:15912 Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!ames!pasteur!ucbvax!decwrl!megatest!djones From: djones@megatest.UUCP (Dave Jones) Newsgroups: comp.lang.modula2,comp.lang.c Subject: C is not superfluous (Re: "for" loops (was Re: C++ vs. Modula2)) Message-ID: <1315@goofy.megatest.UUCP> Date: 31 Jan 89 00:19:15 GMT References: <348@twwells.uucp> Organization: Megatest Corporation, San Jose, Ca Lines: 58 From article <348@twwells.uucp>, by bill@twwells.uucp (T. William Wells): > In article <1626@csuna.UUCP> abcscagz@csuna.csun.edu (Jeff Boeing) writes: > : ... a C "for" loop is superfluous > : because it can be replaced by an equivalent "while" loop, NOT an > : equivalent "do ... while" loop: > > C is superfluous because it can be replaced by an equivalent assembly > program. > Nice try, but this reductio ad absurdum doesn't stand up under scrutiny. I got the same response once when I observed that the functions of C++ are largely bookkeeping and keystroke-saving mechanisms, and that for the most part, one could write the C++ program in C, by keeping to some naming conventions. (Inline procedure calls are an exception. There the compiler is doing some semantic munging that would be impossible to emulate in straight C.) This mortified some of the object-orientation guys who like to use phrases like "sort-lattice inheritance polymorhism" to describe kinds of lookup-tables. (I just made that one up. How do you like it? ) One fellow replied that one could simply not write object-oriented code without an object-oriented language, and C was not an "OOL". I pointed out that most C++ compilers translate into C anyway, and said, "So there." He rejoined that if C++ were "only" a bookkeeping program, then so was C, because C compilers translate into assembly language. "So there. Ha!" Indeed, many C-compilers translate to assembly language, but -- and this is important -- not always the same one. Thus C is a mechanism for machine-independence. The "reductio" by analogy to replacing C-code with an "equivalent" assembly language program just doesn't hold up. Dave J. P.S. I kind of like C++, although I think the class-initialization and cleanup mechanisms are a little strained. The "bookkeeping" it does is useful, and programs with fewer characters can be easier to read. It also kind of encourages programmers to design around data-structures rather than algorithms, and to limit access to data-structure internals to a few easily identified procedures. I look forward to the day when it is available on one particular kind of machine that doesn't support it now. If and when that happens, I'll probably switch over. D. J. P.P.S. I also like the C for-loop.