[EMAIL PROTECTED] schrieb: > On Sep 12, 2:55 pm, Marc 'BlackJack' Rintsch <[EMAIL PROTECTED]> wrote: >> On Wed, 12 Sep 2007 20:55:22 +0000, [EMAIL PROTECTED] wrote: >>> I have implemented an RPN calculator in python but now I would like to >>> make the stack size fixed. how can I transform the user's RPN >>> expression from a stack overflow to a computable expression. >>> For instance, if my stack size is 2 then the some expression can't be >>> computed but could be transformed as following: >>> Non computable expression: 1 2 3 + + --> stack size of 3 is needed >>> Computable expression: 1 2 + 3 + --> stack size of 2 is needed >>> How can I define a formal way of transforming the non computable >>> expression to computable one. >>> My RPN only implements: + - x % >> Why does this homework assignment limit the stack so severely!? ;-) >> >> Ciao, >> Marc 'BlackJack' Rintsch > > > The problem is not with the stack being severely small or not, it > could be 1000 but it should be fixed and that's the limitation.
It can't be fixed. You can algebraic rewrite expressions of the form (a + (b + (c + d)) because of the commutativity of the +-operation to (a+b) + (c + d) and this can be done automatically. But for arbitrary expressions, you will _always_ need arbitrary stack-sizes. Diez -- http://mail.python.org/mailman/listinfo/python-list