Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

See attached project requirements. A .zip file containing the skeleton code for project 4 is also attached.Also attached is the recommend approach and the test data that accompanies that approach.

1 answer below »
Microsoft Word - Homework 4.docx
1
Homework 4

1. (10 pts) For the following program, explain the interesting elements related to threads. Focus on
explaining the output of the program.

1 public class TaskThreadDemo {
2 public static void main (String args []) {
3 String [] sa = {"a", "X", "+", "."};
4 for (String s: sa) {
5 Runnable ps = new PrintChar (s, 200);
6 Thread ts = new Thread (ps, s);
7 ts.start ();
8 }
end for each character
9 }
end main
10 }
end class TaskThreadDemo
11
12 class PrintChar implements Runnable {
13 String ch;
14 int times;
15
16 public PrintChar (String c, int n) {
17 ch = c;
18 times = n;
19 }
end constructor
20
21 public void run () {
22 for (int i = 0; i < times; i++) {
23 System.out.print (ch);
24 }
end for loop
25 }
end method run
26 }
end class PrintChar

2. (10 pts) What is changed if the method called on line 7, start(), is replaced with run()? Explain (of
course). Focus on explaining the output of the program.

3. (10 pts) What is changed if the method Thread.yield() is added between lines 23 and 24? Explain.
Focus on explaining the output of the program.

4. (10 pts) Modify the above program so that the Thread.sleep method is called after each character has
een printed causing it to sleep for 500 milliseconds. Describe how that modification has altered the
output and explain why the change had the effect that you described.

5. (10 pts) Modify the above program so that the Thread.sleep method is called after each thread is
created in the main method causing it to sleep for 500 milliseconds. Describe how that modification has
altered the output and explain why the change had the effect that you described.
2
Grading Ru
ic:

Attribute Meets Does not meet
Problem 1 10 points
Explains the interesting elements
elated to threads. Focuses on
explaining the output of the program.
0 points
Does not explain the interesting elements
elated to threads. Does not focus on
explaining the output of the program.
Problem 2 10 points
Explains what is changed if the
method called on line 7, start(), is
eplaced with run().Focuses on
explaining the output of the program.
0 points
Does not explain what is changed if the
method called on line 7, start(), is replaced
with run(). Does not focus on explaining
the output of the program.
Problem 3 10 points
Explains what is changed if the
method Thread.yield() is added
etween lines 23 and 24. Focuses on
explaining the output of the program.
0 points
Does not explain what is changed if the
method Thread.yield() is added between
lines 23 and 24. Does not focus on
explaining the output of the program.
Problem 4 10 points
Explains how the output is changed if
the Thread.sleep method is called
after each character has been
printed.
0 points
Does not explain how the output is
changed if the Thread.sleep method is
called after each character has been
printed.
Problem 5 10 points
Explains how the output is changed if
the Thread.sleep method is called
after each thread is created in the
main method.
0 points
Does not explain how the output is
changed if the Thread.sleep method is
called after each thread is created in the
main method.
Answered 2 days After Dec 03, 2024

Solution

Bhaumik answered on Dec 06 2024
3 Votes
CMSC 430 Project 4
Semantic Analysis Enhancement Report
Project Overview
The goal of this project was to enhance the semantic analyzer for a compiler by implementing additional static semantic checks. These checks ensure adherence to the language’s semantic rules, preventing runtime e
ors by catching issues during compilation. The project required modifying a pre-existing compiler skeleton to:
· Implement new semantic checks for type co
ectness, scope rules, and valid usage of language constructs.
· Handle type coercion for arithmetic operations.
· Enhance e
or reporting for duplicate identifiers and invalid operations.
The project also included validating the implementation using a set of test cases, ensuring the co
ectness of the semantic analysis.
Approach and Methodology
1. Environment Setup
· Used tools: flex for lexical analysis, bison for parsing, and g++ for compiling the project.
· Organized the project into directories for source files, test cases, and output files.
· Verified the build process using the provided makefile.
2. Incremental Implementation
The implementation was ca
ied out in stages, focusing on one semantic rule at a time. This ensured modularity and easier debugging.
Step 1: Handling Real Types and Type Coercion
Modifications:
· Added REAL_TYPE to the Types enumeration in types.h.
· Updated scanner.l to recognize real literals.
· Modified checkArithmetic to perform type coercion from INT_TYPE to REAL_TYPE when mixed types are used.
Step 2: Semantic Checks Implementation
Implemented the following semantic checks:
1. Type Mismatch on Variable Initialization:
· Validates that the type of the initializer matches the declared variable type.
· Prevents na
owing conversions (e.g., assigning a...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Looking For Homework Help? Get Help From Best Experts!

Copy and Paste Your Assignment Here