Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: Epic Fail Date: Fri, 11 Apr 2014 21:44:26 -0400 Organization: Aioe.org NNTP Server Lines: 74 Message-ID: References: <2014Apr7.192923@mips.complang.tuwien.ac.at> <19597f37-fa23-478f-9a5f-b2aa66e89ae4@googlegroups.com> <2014Apr8.175427@mips.complang.tuwien.ac.at> <2014Apr9.181655@mips.complang.tuwien.ac.at> <64idnem648RzN9jOnZ2dnUVZ8iWdnZ2d@supernews.com> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:29551 On Fri, 11 Apr 2014 12:45:26 -0400, Alex McDonald wrote: > on 11/04/2014 00:03:01, "Rod Pemberton" wrote: >> C works best on the microprocessor model of computing hardware. > > Proof please. > History. >> Memory is contiguous, bytes are 8-bits, all pointers have a single >> size, integers and pointers are an integer multiple of the size of a >> byte, two's complement arithmetic, etc. Of course, C was implemented >> on a variety of hardware that didn't conform to that model, e.g., > > C started life on a system that didn't conform to your ideal model for C. > True. It also failed to work on most other platforms until it was heavily reworked to fit them. You can read Johnson's, Kernighan's, and Ritchie's early papers yourself where they describe the problems they ran into. >> 16-bit bytes but 9-bit characters, differently sized pointers, no >> ability to access small integers as needed for characters, etc. These >> "other", mostly obsolete, mainframe/corporate platforms like Crays, >> DECs, Burroughs, IBMs, etc is what creates all the "undefined" >> behavior for C. > > As opposed to the undefined behaviour on 8bit byte, pointers single size, > 2s complement etc? > Is this a blatant failure to read? "These 'other', mostly obsolete, mainframe/corporate platforms like Crays, DECs, Burroughs, IBMs, etc is what creates all the 'undefined' behavior for C." and I said, "Of course, C was implemented on a variety of hardware that didn't conform to that model, [...]" Let me explain that since you didn't comprehend. If only the microprocessor model was used, there wouldn't be undefined behavior in C. I.e., the need for compatibility with multiple architectures are what created undefined behavior. I should additionally clarify that for you. I'm referring to microprocessors 1974 or later which standardized on such a model. It took a few years for such a model to become standard. And, I never said some of those characteristics weren't present in mainframes. They are. Most mainframes didn't have all of those features though, but a couple did. You can look at the Wikpedia computer word page to see them: http://en.wikipedia.org/wiki/Word_(computer_architecture) >> C is superb for microprocessors where the useful behaviors are usually >> implemented. > > The above is a "let's rewrite history" or (as we call it in my business) > rubbish. > The above is accurate. Your comments are ignorant. Rod Pemberton