Where should the type information be 122
Where should the type information be 124
Since the postulated array occupies a contiguous region of memory, why would the descriptor need anything more than a base and a limit...
Where should the type information be 123
snip Perhaps. I am not familiar with the details of the Burroughs implementation. If one had say a three...
I'm told it's been done - specifically, as I understand it, the AS-400 got it right. The key is to not store-distribute software as machine code, but as byte code, which gets JIT-compiled before running. (The AS-400's JITter caches the generated code IIRC, so it doesn't have to be recompiled each run, though it wouldn't be a big penalty either way.)
Once you do that, you simply define the byte code architecture as enforcing safe access, and the JITter and CPU between them can use any method to enforce this. In practice, for inner loops it's usually possible to prove at compile time there won't be an array bounds violation; for the cases it isn't, the compiler can use ordinary software techniques to do the checking without much slowdown. You end up not even really needing protected-virtual memory support in the CPU. What's more, you can change the CPU architecture without disturbing anything, so at the end of the day you get better performance and better safety at the same time.
(I heard one story about some company that's planning to release a machine with those properties, using Java as the byte code format so as to tap an established software base, though I don't know the details.)
-- "Always look on the bright side of life." To reply by email, replace no.spam with my last name.