logo Hurry, Grab up to 30% discount on the entire course
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Manning DaleResume writing
(5/5)

879 Answers

Hire Me
expert
Joseph MburuStatistics
(/5)

944 Answers

Hire Me
expert
Carson FisherEnglish
(5/5)

529 Answers

Hire Me
expert
Gabriel GaboardiLaw
(5/5)

892 Answers

Hire Me
Computer Science

Calculate the area of a triangle PRINT  "This program calculates " PRINTLN "the area of a triangle" PRINT "ENTER BASE:

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Q. 1 We are going to combine some parts of Lab 3 with Lab

    1. Create a new project called Lab5 in Netbeans, Eclipse, etc
    2. In ANTLRWorks, open both the expr.g and Lab4.grammars
    3. Copy the expr rule and all its dependent rules to Lab4.g. Put them just below the rules for PRINT and PRINTLN
    4. Copy the @members from expr.g to Lab4.g. Copy the import for HashMap to Lab5
    5. Set Lab4 grammar preferences to output to the Lab5 directory
    6. Generate the modified Lab4 grammar.
    7. Back in your IDE (Netbeans, etc) add the imports and code to main from Lab4
    8. Create an input file with these statements:

PRINTLN "We CAN NOW DO EXPRESSION EVALUATION"

PRINTLN 2*2

PRINTLN 4+5*3

PRINT "20/4="

PRINTLN 20/4

  1. Run the program in your IDE. Should get everything up to PRINTLN 20/4
  2. Go back to ANTLRWorks. Carefully examine the rule for ‘*’. Create a similar rule for /. Look at how the rule expr is structured to understand how to change the multexpr rule
  3. Generate the grammar. Return to your IDE. Run the program. It should now do the division operation
  4. Submit your modified Lab4 grammar to BB dropbox for Lab5

 

Q. 2 In Lab 5 we added expression evaluation but didn't do any variables. Today we are adding the "LET" statement rule to our grammar. LET is essentially an assignment statement similar to that of BASIC. Sample LET statements:

  1. LET A = 1
  2. LET B = A * 8
  3. LET C = A*B + B/2 - (A+3)

 

 

Use the same project from Lab 5 and just add to the ANTLR grammar the rules or edit the rules as needed. Your SIL interpreter should be able to run this program after the changes:

LET A = 4 LET B = 5

LET C = A * B + 7 PRINT A

PRINT " * " PRINT B PRINT " + 7 = " PRINTLN C

which makes this output : 4 * 5 + 7 = 27

Submit the grammar to BB Dropbox Lab 6

Q. 3 In this lab we will add two commands to our language (called Simple Interpreted Language (SIL)): INTEGER and INPUT

The syntax of INTEGER is INTEGER ID [,ID]*

At least one, and possibly (somewhat smaller than infinite) any number more, variables are defined by this statement. IDs must be defined before use or an error is raised “Undefined ID”. Variables must be defined in the INTEGER statement. IDs may not be repeated. If an ID is repeated raise an error “Error: ID (its actual name) already defined”. IDs are stored in the symbol table and initialized to 0. This rule makes SIL an explicit declaration language.

The syntax of INPUT is INPUT ID [,ID]*

At least one, and possibly (somewhat smaller than infinite) any number more, variables are read from the keyboard by this statement. IDs must be defined before use or an error is raised “Undefined ID”. Variables must have been defined in the INTEGER statement. When a value is

obtained for a variable, search the symbol table for the ID and if found store the value with the ID.

This is the ANTLR grammar rules needed for INTEGER:

integer :

'INTEGER' idlist;

idlist : idname (',' idname)*;

idname : ID {if(symtab.containsKey($ID.text))

System.out.println("Error: "+$ID.text+

" already defined");

else

symtab.put($ID.text, 0); };

The ANTLR rules for INPUT are structured identically, but of course the actions are different. I used a “Scanner” as defined in import java.util.Scanner; A Scanner is a simple IO stream that can parse int, double, etc.

Sample program 1

PRINTLN "Calculate Payroll - Double Pay Overtime" PRINT "Enter rate of pay:"

INTEGER rate, hours, overtime_hours, netpay INPUT rate

PRINT "Enter hours up to 40:" INPUT hours

PRINT "Enter overtime hours:" INPUT overtime_hours

LET netpay = rate * hours + rate * overtime_hours * 2 PRINT "Your net pay = "

PRINTLN netpay

Sample program 2

/Calculate the area of a triangle PRINT  "This program calculates " PRINTLN "the area of a triangle" PRINT "ENTER BASE:"

INTEGER BASE, HEIGHT, AREA INPUT BASE

PRINT "ENTER HEIGHT:" INPUT HEIGHT

LET AREA = (BASE * HEIGHT) / 2 PRINT "AREA = "

PRINTLN AREA

Sample program 3

//Multiple inputs on a single INPUT

PRINT “Enter A, B, and C:”

INTEGER A,B,C,D INPUT A, B, C

PRINT “B*B – 4*A*C =” LET D = B*B-4*A*C PRINTLN D

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. Develop a program to emulate a purchase transaction at a retail store. This  program will have two classes, a LineItem class and a Transaction class

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme