Well, there are plenty of word-but-not-byte/character
addressable
machines out there, which makes life interesting for the likes of C.
C is able to support them just fine, though a whole lot of C code isn't
(beacuse it assumes things like "all pointers are the same size", or
even more specifically, "all pointers are just memory addresses").
Such machines typically just have void * and char * occupying more
space than pointers to word-and-larger types.
One thing that I've wondered about is "does
the current HLL-du-juor
dictate processor architecture?"--and not the reverse.
Dictate, probably not quite. Influence, certainly.
Does anyone consider a machine that doesn't
implement any sort of
hardware stack, for example, a marketplace contender?
I don't, for the simple reason that I don't know of any that aren't, by
today's standards, ludicrously slow.
If a hypothetical machine were to be released that didn't have stack
support of some sort in hardware (even if just autodecrement and
autoincrement addressing modes - for example, the Super-H)? I'd want
to know what it had that made its maker think it worth making despite
that.
However, I have trouble imagining a machine on which it is difficult to
implement a stack. Even the machines of old which "didn't have stacks"
generally had (what we would today call) addressing modes that made it
possible to implement them without too much pain. (What they usually
didn't have was an easy way to get procedure call return addresses onto
the stack, like one I remember hearing of whose call instruction stored
the return address just before the beginning of the called procedure.
While I don't know any such machines well enough to be sure, I would
imagine a return stack could be maintained there by slightly
complicating the procedurecall and return sequences - in this crowd,
I'm sure I'll be corrected if I'm wrong! :-)
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse at
rodents-montreal.org
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B