By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,369 Members | 1,147 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,369 IT Pros & Developers. It's quick & easy.

Implementing a fixed size stack for an RPN Calculator

P: n/a

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 %

Sep 12 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
On Wed, 12 Sep 2007 20:55:22 +0000, ra********@gmail.com 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
Sep 12 '07 #2

P: n/a
On Sep 12, 2:55 pm, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
On Wed, 12 Sep 2007 20:55:22 +0000, rami.ma...@gmail.com 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.

Sep 13 '07 #3

P: n/a
ra********@gmail.com schrieb:
On Sep 12, 2:55 pm, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
>On Wed, 12 Sep 2007 20:55:22 +0000, rami.ma...@gmail.com 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
Sep 13 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.