Java question | Computer Science homework help

Lab #1 — Set-uping a Calculator

Your toil ce Lab #1 is to set-up a calculator in Java that has span enactments, governoperative by command-continuity options postfix and infix. In twain enactments the calculator succeed interpret continuitys of input from banner input. Ce each input continuity, the calculator succeed evaluate the indication that was input and print the outcome on a disunited continuity. The program ends when it withstands the EOF nature,homogeneous to the comportment of most Unix utilities.

To disencumber matters in-reference-to practice with irrelative marks of total, in this provision, integral total are to be denoteed within as either Java floatprimitives or Floatobjects depending on your toolation choices.

Your calculator succeed tool the aftercited agencys:

• +, -, *, /
• ^ (exponentiation: e.g., 2^3 = 8).

Your calculator succeed tool indications containing either a uncombined enumerate or agencys applied to total.

Enactment #1 — Postfix Pointableation

The primitive enactment that you succeed tool is single where the calculator accepts anindication that is explicit in postfix notation. Ce those of you common with HP’s continuity of or-laws and graphing calculators, postfix pointableation is besides pointableorious as RPN or Reverse Polish Pointableation, in renown of the Polish logician Jan Łukasiewicz who concocted Polish pointableation, besides pointableorious as preface pointableation.

Here are samples of indications written in postfix pointableation with their conversions to infix pointableation and their evaluations:

2 3 +

2 + 3

5

2 3 + 5 *

(2 + 3) * 5

25

2 3 5 * +

2 + (3 * 5)

17

2 3 2 ^ * -10 –

2 * (3 ^ 2) – -10

28

How an RPN calculator works within is as follows: it deeptains an inner stack that is authenticationd to place-of-business operands and comprised outcomes. Let’s authentication the indication “4 3 + 5 *” as an sample. The primitive creature that we do is lexical separation on the input string by primitive splitting the string by its whitespace natures and then dischargeing the appropriate mark conversions on the total, outcomeing in a register that looks affect this:

[4.0, 3.0, “+”, 5.0, “*”]

Next, we reproduce through the register. Ce each enumerate, we expedite it onto the stack. Once we gain an operator on the register, we explode the stack twice, discharge that agency on the explodeped total, and then expedite the outcome onto the stack. In this sample, the elements 3.0 and 4.0 are explodeped from the stack. We then discharge the “+” agency on the remedy and primitive elements explodeped from the stack (manage matters ce “-”, “/”, and “^”), and then expedite the outcome (12.0) onto the stack. Then, as we endure iterating through the register, we withstand 5.0, and thus we expedite it on the stack, outcomeing in a stack with the elements 12.0 (bottom) and 5.0 (top). Finally, the latest memorial in the register is “*”, and so we explode the stack twice, multiplying 5.0 and 12.0 to achieve 60.0, and then we expedite it end on the stack.

When we possess unencumbered the register of memorials, we explode the stack and print the explodeped prize as the outcome of the indication.

Single of the agreeoperative appropriateties of postfix apprehension is the stagnation of a want to designate operator lead. It is this appropriatety that makes it potential to tool an RPN calculator outerly the want ce designate a cemal phraseology ce indications. In deed, there are full-fledged programming languages such as Ceth and PostScript that authentication postfix pointableation and depend on a stack.

Enactment #2 — Infix Pointableation

Unaffect a postfix calculator where parsing is a very undesigning toil, parsing is pointoperative as undesigning in infix pointableation, gone you possess to moment yourself with indications of overbearing tediousness and operator lead. Your calculator succeed possess to appropriately tool the PEMDAS (parentheses, exponents, reproduction, resistance, union, disconnection) manage of agencys that are from compo algebra.

Thankfully with the aid of parser generators such as ANTLR, you won’t possess to dispense with the drudge of tooling parsing algorithms.

Here is an praiseworthy tutorial ce using ANTLR:https://tomassetti.me/antlr-mega-tutorial/ (Links to an outer locality.). Please besides point to the deep ANTLR weblocality athttps://www.antlr.org (Links to an outer locality.).

1. Write a BNF or EBNF phraseology that is operative to denote indications in infix pointableation that is besides operative to tool the PEMDAS manage of agencys.
2. Express that phraseology as an ANTLR phraseology.
3. Authentication ANTLR to beget an unembodied syntax tree.
4. Traverse the unembodied syntax tree to evaluate the indication. There are span ways of doing this: (1) either evaluating the unembodied syntax tree at-once, or (2) using the AST to beget a postfix pointableation denoteation of the indication, and then evaluating it as in Enactment #1.

Some Samples:

\$ java Calculator postfix

Calculator> 2 4 * 2 ^ 10 –

54

Calculator> 5

5

Calculator> 8 24 + 9 –

23

\$ java Calculator infix

Calculator> (2 * 4)^2 – 10

54

Calculator> 5

5

Calculator> 8 + 24 – 9

23

Deliverable:

A assemblage of Java and ANTLR rise edict improves in a *.zip archive, where the deep regularity is located in a assort determined Calculator and in a improve determined Calculator.java.

Enactment #1 (Postfix Pointableation): 30%

Enactment #2 (Infix Pointableation Phraseology and Parsing): 50%

Enactment #2 (Infix Pointableation Evaluation): 20%

Note:Your edict must controlm in manage ce it to entertain any credit; any surrender that does pointoperative controlm succeed entertain a progression of 0%.

Basic features
• Free title page and bibliography
• Unlimited revisions
• Plagiarism-free guarantee
• Money-back guarantee
On-demand options
• Writer’s samples
• Part-by-part delivery
• Overnight delivery
• Copies of used sources
Paper format
• 275 words per page
• 12 pt Arial/Times New Roman
• Double line spacing
• Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Our guarantees

We value our customers and so we ensure that what we do is 100% original..
With us you are guaranteed of quality work done by our qualified experts.Your information and everything that you do with us is kept completely confidential.

Money-back guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Zero-plagiarism guarantee

The Product ordered is guaranteed to be original. Orders are checked by the most advanced anti-plagiarism software in the market to assure that the Product is 100% original. The Company has a zero tolerance policy for plagiarism.

Free-revision policy

The Free Revision policy is a courtesy service that the Company provides to help ensure Customer’s total satisfaction with the completed Order. To receive free revision the Company requires that the Customer provide the request within fourteen (14) days from the first completion date and within a period of thirty (30) days for dissertations.