Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Arithmetic Expression Evaluator- WITHOUT Stacks! Recursive Program The purpose of this project is to gain an understanding of using recursion to solve problems. Write a

Arithmetic Expression Evaluator- WITHOUT Stacks! Recursive Program

The purpose of this project is to gain an understanding of using recursion to solve problems.

Write a Java application or applet that asks a user to enter an arithmetic expression, and then compute and print out the result. The expression may contain parenthesis, *, /, +, - and numbers. Unary plus and minus do not need to be supported. Normal Java evaluation precedence should be used. For example:

(1 + 2) * (6 / 2 + 3) = 18

BNF (Backus-Naur Form) is commonly used in compilers to describe the language to be accepted. A BNF definition of an arithmetic expression is:

::= + |

- |

::= * |

/ |

::= {) |

|

You may use the above BNF definition as a basis for your implementation. (I would prefer the answer to use this!!) The BNF definition should show you how to call the various functions recursively if you name your functions expression, term and factor.

The solution is to use normal RECURSION. NO STACKS!! That is, have the following procedures: expression, term, and factor. You call expression first. It always calls term (based on the BNF description). Upon return it checks for a + or or end of expression string. In the case of + or it calls expression (recursively) (based on the BNF description) and then does the addition or subtraction.

You do the same for term and factor following the BNF description.

The purpose of the project is to gain an understanding of Java recursion. Therefore recursion should be used. Stacks should not be used!!!!

That is, have the following procedures: expression, term, and factor. You call expression first. It always calls term (based on the BNF description). Upon return it checks for a + or or end of expression string. In the case of + or it calls expression (recursively) (based on the BNF description) and then does the addition or subtraction.

You do the same for term and factor following the BNF description.

You dont need any stacks. Just use normal Java recursion calling : expression, term, and factor based on the BNF description.

Hope this helps!!

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Nested Relations And Complex Objects In Databases Lncs 361

Authors: Serge Abiteboul ,Patrick C. Fischer ,Hans-Jorg Schek

1st Edition

3540511717, 978-3540511717

More Books

Students also viewed these Databases questions

Question

What is the relationship between humans?

Answered: 1 week ago

Question

What is the orientation toward time?

Answered: 1 week ago