Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!mcvax!ukc!dcl-cs!aber-cs!pcg From: pcg@aber-cs.UUCP (Piercarlo Grandi) Newsgroups: comp.arch Subject: Re: unconventional architectures Summary: C/BCPL on Burroughs? They did it... They were not happy Message-ID: <912@aber-cs.UUCP> Date: 7 May 89 21:49:32 GMT Reply-To: pcg@cs.aber.ac.uk (Piercarlo Grandi) Distribution: eunet,world Organization: Dept of CS, UCW Aberystwyth (Disclaimer: my statements are purely personal) Lines: 43 In article <89May7.001514edt.39763@neat.ai.toronto.edu> bradb@ai.toronto.edu (Brad Brown) writes: But consider how C is implemented on the 8086 and it's brethren: You simulate a flat address space and give the programmer a bunch of different memory models so they can decide how big their flat space is. Well, the problem with the Intel architecture is that it was designed for Pascal, whose pointers can only point to heap allocated objects (and no arithmetic on them is allowed). As far as Pascal is concerned, the Intel architecture has (three/four) flat address spaces, and the fact that they are "distinct" is not a problem. The 386 is the same, but the common trick is to superimpose them (all three/four segment registers have the same value), which is practical because they are large. You can do that also on the smaller ones, getting a 64k flat address space, just like non sep I/D PDP-11s (on which I used to run 2.9BSD with 5 users on a 248k machine...). Or you can simulate sep I/D by overlapping only the stack and data address spaces. The point is that C wants to be able to point anywhere in memory, more or less, whereas really segmented machines like the Buroughs I was talking about get thier protection ability from having a segment for each (more or less) object in the system. If I remember well, the average segment size in a Burroughs is of the order of seven-ten words. Moreover addresses do not mean much in a Burroughs type architecture; segments are accessed via descriptors, not addresses. I find hard to say that the Burroughs has a concept of "address space" like say a 68000 or even a 80x86. I'm sure that C *could* be implemented on that machine, but the architecture would get in the way. I remember having seen on Soft.Pract.Exp. a paper on this -- I don't remember whether it was a BCPL or C implementation (does not make much difference to our discussion here), but indeed they found that there is a (huge) mismatch between what is almost a capability, fragmented address space architecture, and C/BCPL. It can be papered over, but not easily. Moreover the protection scheme of the Burroughs makes things even more difficult (see Organick, the B6700 architecture, MIT press) for C. -- Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcvax!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk