Path: utzoo!utgpu!water!watmath!clyde!rutgers!mit-eddie!uw-beaver!cornell!rochester!PT.CS.CMU.EDU!sei!sei.cmu.edu!firth From: firth@sei.cmu.edu (Robert Firth) Newsgroups: comp.lang.c Subject: Re: C critisisms Message-ID: <3737@aw.sei.cmu.edu> Date: 8 Jan 88 15:38:12 GMT References: <7597@sunybcs.UUCP> <1473@codas.att.com> <3686@aw.sei.cmu.edu> <1378@sugar.UUCP> Sender: netnews@sei.cmu.edu Reply-To: firth@bd.sei.cmu.edu.UUCP (PUT YOUR NAME HERE) Organization: Carnegie-Mellon University, SEI, Pgh, Pa Lines: 29 In article <3686@aw.sei.cmu.edu>, firth@sei.cmu.edu I wrote [BCPL has been used for] (b) operating systems, including Tripos, one of the best (in my opinion) distributed OS (sold commercially as 'Trout') In article <1378@sugar.UUCP> peter@sugar.UUCP (Peter da Silva) writes: I'd have to disagree. Tripos is also sold as the DOS part of AmigaDOS. The use of BCPL produces innumerable headaches for programs that want to use it: BCPL pointers are indexes into a 32-bit-wide array based at 0. Thus to send an address to BCPL you have to divide it by 4 (shift right 2 places) if you are using ANY other languages. The BCPL orientation of Tripos makes the C orientation of UNIX look like a mild bias... Thanks, Peter - I was imprecise. What I meant to say was that I thought highly of the concepts, design, and implementation of Tripos, having used it from the terminal and from BCPL code. However, the Amiga port made a decision I consider totally crazy: to exposdet to other languages the implementation of the BCPL pointer. The proper place for shifts left and right is either at the interface (so the compiler does it for you) or within the BCPL code. To force upon the user those BPTRS or whatever they're called was a major blunder. Peter is if anything too kind here. But I still claim (albeit unconvincingly) that this is not a defect of BCPL but rather of the way other things were built on top of it. And no, I'm not about to run out and buy an Amiga, for all sorts of reasons.