ALCCS
FEBRUARY 2009
NOTE:
· 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.
Q.1 (7
x 4)
a. Bring out the difference
between system software and application software.
b. Draw a DFA for recognizing
identifiers and unsigned integers and unsigned real numbers with fraction.
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
E::=T+E|T
T::=T *V|V
V::= <id>
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.
(6+6+6)