[net.lang.forth] Help with Forth stack behaviour Wanted

dont@tekig1.UUCP (Don Taylor) (11/02/84)

X
     I am looking at the possibility of building a writable microcode machine.
One of the languages, of many, that the machine would have features to support
might be forth.  The question arises as to keeping some of the top of the stack
in registers, to increase speed.  This will either complicate the daylights out
of the microcode, or mean adding nontrivial register addressing hardware to the
machine that perhaps no other language would be able to use.  (I was considering
keeping 8 or maybe 16 words inside the processor).
     Has anyone got any ideas that would make this easier to do?  In addition,
would anyone be able to supply me with some benchmark forth stack push and pop
histories?  By this I mean a statement of what a particular program was meant
to do, a listing, and a long stream of 1's (say, for pushes) and 0's (say for
pops).  If anyone could modify a running system, to log stack usage, it would
be very informative and helpful.  If, for example, there exist a large number
of   <push_operand><binary_operator> sequences, or <push_operand><unary_operand>
it would show that one or two registers would aid performance.  On the other
hand, if an overwhelming percentage of the history is a large number of pushes
followed by a stream of operators, the fooling around with register overflow
is going to be more than it is worth.  I am banking on the first behaviour, but
I would rather see some data first.
Thanks in advance
Don Taylor
tektronix!tekig1!dont