· Question 1 is compulsory and carries 28 marks. Answer any FOUR questions from the rest. Marks are indicated against each question.
· Parts of a question should be answered at the same place.
c. What are assembler directives? Give examples.
d. Define Sequencing Symbol and expansion Time Variable.
e. Explain flow of control during macro expansion.
f. Write a regular expression for a real number with optional fraction.
g. Write short notes on bootstrap loader.
Q.2 a. Compare a two-pass assembler with a single pass assembler. How are forward references handled in one-pass assembler?
b. Classify the various data structures used in language processing based on the nature, the purpose and the lifetime. (10+8)
Q.3 a. Using backpatch techniques, generate annotated parse tree for the expression P<Q or R<S and X<Y.
b. Give the steps involved in dynamic debugging. How does a debug monitor facilitate these steps? (12+6)
Q.4 a. Define Parsing. Use Bottom Up Parsing to parse the string <id>*<id>+<id> using the grammer
What problems one may face in Top-down Parsing?
b. Describe the structure and components of an object module. (12+6)
Q.5 a. Explain Static overlay Generator. What is its use?
b. Compare and contrast the following parameter passing mechanisms in terms of execution, efficiency and power to produce side effects.
(i) Call by value
(ii) Call by reference
(iii) Call by name
c. What is the aim of code optimization phase in the compiler? Explain local optimization. (6+6+6)
Q.6 a. List and briefly explain the various types of loaders highlighting the features for each of them.
b. Explain the design of a macro pre-processor. (6+12)
Q.7 a. Differentiate between Pure and Impure interpreters.
b. Describe two methods for collision handling.
c. Define a language processor. Describe various types of language processors.