Levels Tought:
Elementary,Middle School,High School,College,University,PHD
Teaching Since: | Apr 2017 |
Last Sign in: | 11 Weeks Ago, 6 Days Ago |
Questions Answered: | 4870 |
Tutorials Posted: | 4863 |
MBA IT, Mater in Science and Technology
Devry
Jul-1996 - Jul-2000
Professor
Devry University
Mar-2010 - Oct-2016
Write a program that accepts an arithmetic expression of unsigned integers in postfix notation and builds the arithmetic expression tree that represents that expression. From that tree, the corresponding fully parenthesized infix expression should be displayed and a file should be generated that contains the three address format instructions. This topic is discussed in the week 4 reading in module 2, section II-B. The main class should create the GUI shown below:
The GUI must be generated by code that you write. You may not use a drag-and-drop GUI generator.
Pressing the Construct Tree button should cause the tree to be constructed and using that tree, the corresponding infix expression should be displayed and the three address instruction file should be generated.
The postfix expression input should not be required to have spaces between every token. Note in the above example that 9+- are not separated by spaces.
The above example should produce the following output file containing the three address instructions:
Add R0 5 9 Sub R1 3 R0 Mul R2 2 3 Div R3 R1 R2
It is not necessary to reuse registers within an expression as shown in module 2, section II-B, and you can assume there are as many available as needed. Each new expression should, however, begin using registers starting at R0.
Inheritance should be used to define the arithmetic expression tree. At a minimum, it should involve three classes: an abstract class for the tree nodes and two derived classes, one for operand nodes and another for operator nodes. Other classes should be included as needed to accomplish good object-oriented design. All instance data must be declared as private.
You may assume that the expression is syntactically correct with regard to the order of operators and operands, but you should check for invalid tokens, such as characters that are not valid operators or operands such as 2a, which are not valid integers. If an invalid token is detected a
Â
RuntimeException should be thrown and caught by the main class and an appropriate error message should be displayed. Below is an example:
You are to submit two files.
Â
Please see the attachment for more.
Â
CMSC 350 Project 2The second programming project involves writing a program that accepts an arithmeticexpression of unsigned integers in postfix notation and builds the arithmetic expression tree thatrepresents that expression. From that tree, the corresponding fully parenthesized infix expressionshould be displayed and a file should be generated that contains the three address formatinstructions. This topic is discussed in the week 4 reading in module 2, section II-B. The mainclass should create the GUI shown below:The GUI must be generated by code that you write. You may not use a drag-and-drop GUIgenerator.Pressing theConstruct Treebutton should cause the tree to be constructed and using that tree, thecorresponding infix expression should be displayed and the three address instruction file shouldbe generated.The postfix expression input should not be required to have spaces between every token. Note inthe above example that9+-are not separated by spaces.The above example should produce the following output file containing the three addressinstructions:Add R0 5 9Sub R1 3 R0Mul R2 2 3Div R3 R1 R2It is not necessary to reuse registers within an expression as shown in module 2, section II-B, andyou can assume there are as many available as needed. Each new expression should, however,begin using registers starting atR0.Inheritance should be used to define the arithmetic expression tree. At a minimum, it shouldinvolve three classes: an abstract class for the tree nodes and two derived classes, one foroperand nodes and another for operator nodes. Other classes should be included as needed toaccomplish good object-oriented design. All instance data must be declared as private.You may assume that the expression is syntactically correct with regard to the order of operatorsand operands, but you should check for invalid tokens, such as characters that are not validoperators or operands such as2a, which are not valid integers. If an invalid token is detected a
Attachments: