Author Topic: Anna university Examination 2009 Question paper - PRINCIPLES OF COMPILER DESIGN  (Read 7376 times)


  • Winners @ IT Acumens
  • Co Admin
  • Hero Member
  • *****
  • Posts: 10216
  • Am @ IT Acumens
    • View Profile
    • IT Acumens Bala
Anna university Examination 2009 Question paper - PRINCIPLES OF COMPILER DESIGN

Sixth semester
Computer Science and Engineering

(Regulation 2004)

Time:Three hours Maximum:100 marks

Answer All questions

Part A --(10*2=20 marks)

1. What are the issues to be considered in the design of lexical analyzer?

2. Define concrete and abstract syntax with example.

3. Derive the string and construct a syntax tree for the input string ceaedbe using
the grammar S->SaA|A,A->AbB|B,B->cSd|e

4. List the factors to be considered for top-down parsing.

5. Why is it necessary to generate intermediate code instead of generating target
program itself?

6. Define back patching.

7. List the issues in code generation.

8. Write the steps for constructing leaders in basic blocks.

9. What are the issues in static allocation?

10. What is meant by copy-restor?

PART B--(5*16=80)

11. (a) (i) Explain the need for dividing the compilation process into various phases
and explain its functions. (8)

(ii) Explain how abstract stack machine can be used as translators. (8)

(b) What is syntax directed translation? How it is used for translation of expresions?

12. (a) Given the following grammar S->AS|b,A->SA|a Construct a SLR parsing table for
the string baab (16)


(b) Consider the grammar E->E+T,T->T*F,F->(E)\id.Using predictive parsing the string
id+id*id. (16)

13. (a) Explain in detail how three address code are generated and implemented.

(b) Explain the role of declaration statements in intermediate code generation.

14. (a) Design a simple code generator and explain with example.


(b) Write short notes on:

1: Peep hole optimization

2: Issues in code generation

15. (a) Explain with an example how basic blocks are optimized.


(b) Explain the storage allocation strategies used in run time environments.