Software Construction
Assignment-2
1- Write a report on the evolution of programming languages. Pick one of your favorite programming language and evaluate it against other popular programming languages of the time. Your evaluation metrics should be based on readability, writability, reliability and cost. You can also include more metrics such as generality, efficiency and portability etc.
The report should include:
a. History of popular languages
b. Evolution of popular languages
c. Your evaluation matrix
d. Evaluation of your chosen language based on evaluation metrics
You can include code samples, graphical representations and other convincing means to defend your choice of language.
2- Design a state diagram to recognize one form of the comments of the any programming languages, those that begin with /* and end with */. Then, Write and test the code to implement the state diagram.
3- Answer the following questions:
a. State and explain the convention followed for writing a recursive-descent parsing subprogram.
b. What is left factoring ? explain the limitation of left factoring?
4- LL parsers: for the following grammar
S –> Ab$
A –> (bAb)
A –> (Ab)
A –> λ
a. Find first and follow
b. Construct LL(1) parse table based on your predict sets
c. Is this an LL(1) grammar? Why or why not?
5- Show a complete LR(0) parse, including the canonical collection of LR(0), parsing table and parse stack contents for the input string id * (id + id), using the following grammar
E –> E + T | T
T –> T * F | F
F –> ( E ) | id
6- For the following given grammar :
E –> ( E + E ) | x
a. Draw canonical function of LR(0)
b. Draw the LR(0) parsing table
c. Check weather the input string ( ( x + x ) + x ) generate by this grammar or not.
7- Show that the following grammar is SLR(1) but not LL(1)
E –> S A | A
A –> a
Due Date:
Your submissions should be no later than (July 25, 2018)
Plagiarizing:
Plagiarism is defined as the presentation of another person’s work as your own. This includes copying from books without referencing the material or copying from another student’s work.
Late Assignments
If your assignments are not submitted on time and you have not received an extension, late assignment submissions will result in a penalty. A one week late submission results in a 10% deduction on the assignment marking; while an assignment submitted between 1 and 2 weeks late will be subject to a 20% deduction on the assignment marking. Submissions after two weeks will be considered a fail on the assignment
Format for the assignment:
• Use fonts (only one type) that are easy to read and do not complicate the text
• Line spacing should be 1.5 times
• The assignment should always have the cover page which is given by the instructor
• All details regarding name and signature must be filled in
• Assignments should be done on A4 size paper
• Every page should have a footer which details the assignment name, your name and the page number
• The first page should be the index or contents page with the page numbers
• The next page should have the introduction which is what the assignment is about and what you are planning to write. This can be brief
• ASSIGNMENTS ARE VERY IMPORTANT IN YOUR FINAL GRADING SO DO ENSURE THE DEADLINES SET ON THE COVERSHEET OR BY YOUR INSTRUCTOR ARE MET.
Grading as follow:
➢ Question-1
20
➢ Question-2
20
➢ Question-3
10
➢ Question-4
15
➢ Question-5
10
➢ Question-6
15
➢ Question-7
10
Total
100
TO GET THIS OR ANY OTHER ASSIGNMENT DONE FOR YOU FROM SCRATCH, PLACE A NEW ORDER HERE
