CS 6660 Compiler Design
CS 6660 Compiler Design
CS 6660 Compiler Design
VI-Semester
UNIT -1-INTRODUCTION TO COMPILERS
2 MARK QUESTIONS
1. Define compiler
2. Name few cousins of compiler
3. Point out any two reasons as to why phases of compiler should be grouped.(or) How will you
group the phases of the compiler?
4. Define the following terms: Interpreter, and Translator.
5. Give some compiler construction tools
6. Differentiate between compiler and interpreter.
7. Apply the parse tree structure for the expression
Position: =initial + rate *60.
8. Comparison between call by value and call by reference.
9. Discuss Environments and states.
10. Tell the main two parts of compilation? Describe them performances?
11. Describe the need of separating the analysis phase into lexical phase and parsing?
12. Summarize function of preprocessor?
13. Show the examples of some software tools that manipulate source program?
14. Define Hybrid compiler .and linker
15. Analyze he Errors in phases of the compiler
16. Illustrate the approaches use to recover the errors in lexical analysis phase
17. Explain about convert grouping of phases into passes
18. Summarize the different error recovery techniques in syntax phase?
19. An arithmetic expression with unbalanced parenthesis is lexical or syntax error.
20. Compose the advantages of language processing system in which the compiler produces
assembly language rather than machine language?
16 MARK QUESTIONS
1. Explain the phases of compiler? And how the following statement will be translated into every
phase.
Position: = initial + rate * 60.
2. Discuss in detail about the role of Lexical and syntax analyzer with the possible error
recovery actions
3. Tell the various phases of the compiler and examine with programs segment
4. Describe the following expressions after each phases
a:= b*c-d how various phases could be combined as pass in a compiler
5. Explain in detail about the compiler construction tools.
6. Describe the errors encountered in different phases of compiler
7. Define compiler? State various phases of complier and describe in detail
8. How to solve the source program to target machine code by using language processing system
9. Generalize the important terminologies used in programming language basics
10. i). Analyze the given expressions 4:*+=cba with different phases of the compiler
(ii). Classify the concepts of compiler and Interpreter.
2 MARK QUESTIONS
Define tokens, patterns and lexemes.
Classify approach would you use to recover the errors in lexical analysis phase?
Apply the regular expression for identifier and white space?
Point out why is buffering used in lexical analysis? What are the commonly used buffering
methods?
5. Define transition diagram for an identifier.
6. Compare syntax tree and parse tree.
7. Explain the issues in a lexical analyzer.
8. Define buffer pair?
9. Differentiate the features of DFA and NFA.
10. Define Regular expression.
11. Explain a lexical analyzer with lex?
12. Describe the concepts of sentinel?
13. List out the Goals of Error Handler?
14. Generalizes the advantage of having sentinels at the end of each buffer halves in buffer pairs?
15. Explain four software tools that generate parser.
16. Discuss the Algebraic properties of Regular Expression.
17. Formulate the regular expressions are used though the lexical constructs of any programming
language can be described using context free grammar?
18. Apply other way would you plan to minimize the DFA?
19. Express is the main idea of NFA? And discuss with examples (a/b)*
20. Define lex. Discuss the three parts of a lex program?
16 MARK QUESTIONS
1. Convert the following NFA into DFA. Describe the sequence of moves made by each in
2.
3.
4.
5.
10. How to converting a Regular Expression directly to a DFA. Explain with one example.
UNIT -3-SYNTAX ANALYSIS
2 MARK QUESTIONS
1. Write the rule to eliminate left recursion in a grammar. Prepare and Eliminate the left recursion
for the grammar
S Aa | b
A Ac | Sd |
2. Define handle pruning.
3. Define Phrase level error recovery?
4. Describe the concepts of Predictive parsing and shift reduces parsing?
5. Differentiate Top Down parsing and Bottom Up parsing?
6. Define Recursive Descent Parsing?
7. List out the properties of parse tree?
8. Compare and contrast top down parsing with bottom up parsing techniques.
9. Solve the following grammar is ambiguous: SaSbS / bSaS /
10. Define kernel and non-kernel items
11. Difference between ambiguous and unambiguous grammar.
12. Define parser. Explain the advantages and disadvantages of LR parsing?
13. Solve FIRST and FOLLOW by use the LL(1) grammar?
14. Evaluate the conflicts encountered while parsing?
15. Explain the categories of shift reduce parsing.
16. How to create an input and output translator with YACC.
17. Describe the Error recovery scheme in yacc.
18. What is the main idea of Left factoring? Give an example.(B
19. Discuss the topic on closure operation.
20. Examine what approach would you use in Panic mode error recovery?
16 MARK QUESTIONS
1. Consider the following grammar S AS|b
ASA|a. construct the SLR parse table for the grammar. Show the actions of the parser for the
input string abab.
2. (i). What is an ambiguous and un ambiguous grammar? Create the following grammar is
ambiguous or not.
EE+E | E*E | (E) |id.
(ii). Prepare the following grammar is LL(1) but not SLR(1).
SAaAb | BbBa
A
B
3. (i).Illustrate the predictive parser for the following grammar.
S (L) | a
L L, S | S
(ii).Analyze, Is it possible, by modifying the grammar in any way to construct predictive parser
for the language of
S SS + | SS * | a the string aa+ a *
{
Delete(x);
}.
5. Explain the applications of DAG
6. Define constant folding?
7. List out the properties of optimizing compilers?
8. Define the term data flow analysis?
9. Define live variable.
10. What is DAG? Point out advantages of DAG.
11. Describe the techniques of structure preserving transformations?
12. Discuss the concepts of basic blocks and flow graphs.
13. Give the main idea of dead code elimination.
14. Prepare the total cost of the following target code.
MOV a, R0
ADD b, R0
MOV C, R0
ADD R0, R1
MOV R1, X
15. Construct and explain the DAG for the following basic block.
d:= b * c
e:= a+ b
b:=b*c
a:=e-d.
16. How would you solve the issues in the design of code generators?
17. Evaluate the minimum cost instruction sequence for a statement a= b+c.
18. Prepare and eliminate the common sub expression from the basic block.
a:=b+c
b:=a-d
c:=b+c
d:=a-d
19. Comparison between Register allocation and register assignment.
20. Discuss the topic on algebraic transformations?
16 MARK QUESTIONS
1. Generalize the process of optimization of basic blocks. Give an example.
2. Define a DAG. Construct a DAG and Discover the sequence of instructions for
a+a*(b-c)+(b-c)*d.
3. Explain in detail about the various issues in code generation with examples.
4. (i).Explain in detail about global data flow analysis.
(ii).For the code
SUM = 0
do 10 i=1,n
10 SUM + a(i) * a(i).
Write the following
(i).Three address code
(ii). Local common sub expression elimination.
(iii).Reduction in strength.
5. Analyze and Generate code for the following assignment using the code generator algorithms
(a-b) + (a-c) + (a-c).
6. Optimize and develop this code by eliminating common sub expression, performing reduction in
strength on induction variables and eliminating all the induction variable you can.
t6 = 4 * i
x = a[t6]
t7 = 4 * i
t8 = 4*j
t9 = a[t8]
a[t7] = t9
t10 = 4*j
a[t10] = x
goto B2.
B2 : i = i+1
t2 = 4 * i
t3 = a[t2]
if t3 < a[t1] goto B2.
7. Discuss the code generation phase with simple code generation algorithm.
8. Define dataflow analysis? List out the procedures to analyze the data flow of structured
programs?
9. Describe the common examples of function preserving transformations and loop optimization
process?.
10. Describe the efficient data flow algorithms in detail.