Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!yale!cmcl2!stealth.acf.nyu.edu!brnstnd From: brnstnd@stealth.acf.nyu.edu Newsgroups: comp.lang.misc Subject: Re: Pointers as 3-tuples Message-ID: <296:Apr1105:06:4490@stealth.acf.nyu.edu> Date: 11 Apr 90 05:06:44 GMT References: <14327@lambda.UUCP> Reply-To: brnstnd@stealth.acf.nyu.edu (Dan Bernstein) Distribution: usa Organization: IR Lines: 33 X-Original-Subject: Re: JLG's flogging of horses In article <14327@lambda.UUCP> jlg@lambda.UUCP (Jim Giles) writes: > From article , by peter@ficc.uu.net (Peter da Silva): [ Peter once again reminds Jim that pointers can be implemented to ] [ reliably detect what ANSI C calls illegal pointer operations ] > In fact, what you are recommending is a constraint on pointers which > removes one of the _only_ features that I thought pointers were useful > for. Say what? Jim, are you saying that you thought pointers were only useful for operations that ANSI C calls illegal? Once again, the ``constraint'' embodied by, say, pointer 3-tuples changes absolutely none of the ANSI C pointer semantics---because that constraint *is* the semantics. I must admit I've never found any use for going outside those semantics, except in device drivers. > Multidimensional arrays > are NOT arrays-of-arrays. The subscripts of a multidimensional > array are independent and carry _equal_ weight. Both assembly code and mathematics say otherwise: at some level of specification (the opposite of abstraction), a multidimensional array really is an array of arrays. I agree, the user often doesn't think of it that way; but it's still the truth. > > INTEGER A(10) > > CALL PROC(A,A) > Not necessarily broken. Only if PROC modifies one or more of its > arguments. Note that Fortran has no way to express that concept explicitly, while C can declare const int *A. Hmmm, shall we start flogging this horse too? ---Dan