2010-04-30

parse pref's for stack-based eval's

4.26: adda/oop/parse pref's for stack-based eval's:
. whenever the type T has a lot of operations
(vs functions, ie, having a form like:
T->T, or TxT->T,
where all the arg's and returns
are all of the same type.class),
then it should be more efficient to
send it all as one call:
numstacker(output/.c, input#.c, opcode#.s) .
-- the arrays are constant,
so the call's parameter activation record
is just 3 ptr's
no matter how large the expression .
. there may also be a compiler advice function
that tells how to transform an etree
(expression tree)
to be most precisely eval'd;
but this might depend on current values?
. the type'mgt supplies a function:
parse(tree).tree
which the compiler uses to get advice of
special precedence or other type-specific rules .
. once the parse advice has been taken
the compiler stacks the etree:
ie, it loads an array
with the pointers to the arg's .