Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!whuxl!whuxlm!akgua!gatech!ut-sally!topaz!harvard!h-sc1!breuel From: breuel@h-sc1.UUCP Newsgroups: net.micro.amiga Subject: Re: What's BCPL? Message-ID: <907@h-sc1.UUCP> Date: Tue, 4-Feb-86 07:48:59 EST Article-I.D.: h-sc1.907 Posted: Tue Feb 4 07:48:59 1986 Date-Received: Thu, 6-Feb-86 20:37:46 EST References: <410@wlbr.UUCP> <148600045@uiucuxc> Organization: Harvard Univ. Science Center Lines: 19 > now, can somebody explain to me the utility of these #$%^@ shifted pointers? > i can see how they would serve to enforce boundary alignment of certain > structures in memory, but does this justify the contortions required? > or is it some kind of vestige of pdp11's with 18-bit(?) physical addresses > and 16-bit words? The reason is very simple: since the language does not have data types, this is the only way that pointer arithmetic can work in a reasonably portable manner (i.e. without having to clutter your code with constants or special functions to do arithmetic). Furthermore, this happens to work extremely well on architectures on which the smallest addressable unit of memory is the word. Thomas. PS: needless to say, it has nothing whatsoever to do with PDP's in particular. You might, at most, say that it has something to do with DEC 10's, since they are in some sense word addressable, but whether this had any influence on the development of BCPL, I don't know.