0% found this document useful (0 votes)
98 views14 pages

Compiler Design

The document discusses compiler design and includes details about lexical analysis, syntax analysis, grammars, parsing techniques like recursive descent, LL(1) parsing and LR parsing. It provides a question bank for a compiler design course with topics like finite automata, regular expressions, parsing tables, syntax trees and error recovery.

Uploaded by

KUMARAVEL S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
98 views14 pages

Compiler Design

The document discusses compiler design and includes details about lexical analysis, syntax analysis, grammars, parsing techniques like recursive descent, LL(1) parsing and LR parsing. It provides a question bank for a compiler design course with topics like finite automata, regular expressions, parsing tables, syntax trees and error recovery.

Uploaded by

KUMARAVEL S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

SRM VALLIAMMAI ENGINEERING COLLEGE

(An Autonomous Institution)


SRM Nagar, Kattankulathur – 603 203

DEPARTMENT OF COMPUTER SCIENCE AND


ENGINEERING

QUESTION BANK

VI SEMESTER
1904602 – COMPILER DESIGN
Regulation – 2019
Academic Year 2021 – 2022 EVEN

Prepared by
Dr. K. Devi, Assistant Professor/CSE
Mrs.S.Shanthi, Assistant Professor/CSE
SRM VALLIAMMAI ENGNIEERING COLLEGE
(An Autonomous Institution)
SRM Nagar, Kattankulathur – 603203.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


QUESTION BANK

SUBJECT : 1904602 – COMPILER DESIGN


SEM / YEAR : VI/III

UNIT I -INTRODUCTION TO COMPILERS


Phases of a compiler – Lexical Analysis – Role of Lexical Analyzer – Input Buffering – Specification
of Tokens – Recognition of Tokens – Lex – Finite Automata – Regular Expressions to Automata –
NFA to DFA- Minimizing DFA.
PART-A (2 - MARKS)
Q. No QUESTIONS Competence BT Level
1. Define tokens, patterns and lexemes. Remember BTL1
2. Classify approach would you use to recover the errors in lexical Apply BTL3
analysis phase?
3. Apply the regular expression for identifier and white space. Apply BTL3
4. Point out why is buffering used in lexical analysis? Analyze BTL4
5. Define transition diagram for an identifier. Remember BTL1
6. Compare syntax tree and parse tree. Analyze BTL4
7. Summarize the issues in a lexical analyzer. Evaluate BTL5
8. Define buffer pair. Remember BTL1
9. Differentiate the features of DFA and NFA. Understand BTL2
10. Describe the interactions between the lexical analyzer and the parser. Remember BTL1
11 Explain parse tree and construct a parse tree for –(id + id) Evaluate BTL5
12. Describe the operations on languages. Remember BTL1
13. List out the phases of a compiler. Remember BTL1
14. Generalizes the advantage of having sentinels at the end of each buffer Create BTL6
halves in buffer pairs.
15. Analyze and identify the symbol table for the following statements Analyze BTL4
int a,b; float c; char z;
16. Discuss Regular expression and the Algebraic properties of Regular Understand BTL2
Expression.
17. Develop the Structure of lex program. Create BTL6
18. Apply a grammar for branching statements. Apply BTL3
19. Express the main idea of NFA? And discuss with examples (a/b)* Understand BTL2
20. Define lex and give its execution steps.. Understand BTL2

PART-B (13- MARKS)


1. Describe the various phases of compiler with suitable example (13) Remember BTL1
2 (i)Give the structure of compiler (4) Analyze BTL4
(ii)Analyze structure of compiler with an assignment statement (9)
3. (i).Discuss in detail about the role of Lexical analyzer with the (7) Understand BTL2
possible error recovery schemes.
(ii)Describe in detail about issues in lexical analysis. (6)
4 (i)Describe the Input buffering techniques in detail. (7) Remember BTL1
(ii)Discuss about the recognition of tokens with example (6)
5 Summarize in detail about how the tokens are specified by the (13) Understand BTL2
compiler with suitable example.
6 Define Finite Automata. Differentiate Deterministic Finite (13) Understand BTL2
Automata and Non-Deterministic Finite Automata with examples.

7 Solve the given regular expression into NFA using Thompson Apply BTL3
construction
i)(a/b)* abb (a/b)*. (7)
ii)ab*/ab (6)
8 Create DFA the following regular expression.((ε /a)b*)* (13) Create BTL6
9 (i)Illustrate the algorithm for minimizing the number of states of a (8) Apply BTL3
DFA
(ii)Minimize the following states of DFA (5)

i) 10. Describe in detail about the subset construction of DFA from NFA (13) Remember BTL1
11 Define Lex and Lex specifications. How lexical analyzer is (13) Remember BTL1
constructed using lex? Give an example.
12 (i)Explain the lex program for tokens. (7) Evaluate BTL5
(ii) Describe in detail the tool for generating lexical analyzer. (6)
13 Find the NFA for the given regular expression and find the (13) Analyze BTL4
minimized DFA for the constructed NFA..( a* / b*)*
14 Find the minimized DFA for the regular expression: (13) Analyze BTL4
( 0 + 1 ) * (0 + 1) 1 0.
PART-C (15- MARK )
1. (i) Create languages denoted by the following regular (9) Create BTL6
expressions
a) (a|b)*a(a|b)(a|b)
b) a*ba*ba*ba*
c) !! (aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)*
(ii) Write regular definitions for the following languages: (6)
a)All strings of lowercase letters that contain the five vowels
in order.
b)All strings of lowercase letters in which the letters are in
ascending lexicographic order.
c)Comments, consisting of a string surrounded by / and /, without
an intervening */, unless it is inside double-quotes (")
2. Find transition diagrams for the following regular expression (15) Evaluate BTL5
and regular definition.
 a(a|b)*a
 ((ε|a)b*)*
 All strings of digits with at most one repeated digit.
 All strings of a's and b's that do not contain the substring
abb.
 All strings of a's and b's that do not contain the
subsequence abb.
3. .Prove that the following two regular expressions are equivalent (13) Analyze BTL4
by showing that the minimum state DFA's are same :
a) (a/b)*
b) (a*/b*)*

4. Explain in detail the tool for generating Lexical-Analyzer with an (15) Create BTL6
example program.
UNIT II SYNTAX ANALYSIS
Role of Parser – Grammars – Error Handling – Context-free grammars – Writing a grammar – Top
Down Parsing - General Strategies Recursive Descent Parser Predictive Parser-LL(1) Parser-Shift
Reduce Parser-LR Parser-LR (0)Item Construction of SLR Parsing Table -Introduction to LALR
Parser - Error Handling and Recovery in Syntax Analyzer-YACC.
PART-A (2 - MARKS)
Q.No QUESTIONS BT Level Competence
1. Eliminate the left recursion for the grammar. Create BTL6
S → Aa | b
A →Ac | Sd |ε
2. Define handle pruning. Remember BTL1
3. Compute FIRST and FOLLOW for the following grammar Apply BTL3
S → AS
S →b
A →SA
A→a
4. Describe the concepts of Predictive parsing . Remember BTL1
5. Differentiate Top Down parsing and Bottom Up parsing? Understand BTL2
6. Define Recursive Descent Parsing. Remember BTL1
7. State the different error recovery methods of predictive parsing. Remember BTL1
8. Write an algorithm for finding FOLLOW. Analyze BTL4
9. What is the main idea of Left factoring? Give an example. Understand BTL2
10. Define LL(1) Grammar. Remember BTL1
11. Difference between ambiguous and unambiguous grammar. Analyze BTL4
12. Define parser. Explain the advantages and disadvantages of LR Evaluate BTL5
parsing?
13. Define Augmented Grammar with an example. Remember BTL1
14. Evaluate the conflicts encountered while parsing? Evaluate BTL5
15. Explain the categories of shift reduce parsing. Analyze BTL4
16. How to create an input and output translator with YACC. Create BTL6
17. Describe the four possible actions of LR Parsing. Understand BTL2
18. Solve the following grammar is ambiguous: S→aSbS / bSaS / € Apply BTL3
19. Discuss when Dangling reference occur? Understand BTL2
20. Illustrate the use of GOTO function. Apply BTL3
PART-B (13- MARKS)
1. (i)Explain left recursion and Left Factoring. (7) Analyze BTL4
(ii)Eliminate left recursion and left factoring for the following (6)
grammar.
E→E+T|E-T|T
T → a | b | ( E ).
2. (i)Parse the input string 000111 for the grammar S-> 0S1| 0 (6) Create BTL6

(ii)Construct a parse tree for the input string w-cad using top (7)
down parser .
S->cAd
A->ab|a

3. (i)Analyze the give grammar to construct predictive parser (13) Analyze BTL4
S→ +SS | *SS | a with the string “+*aa.
4. (i)Evaluate predictive parsing table for the following grammar (9) Evaluate BTL5
E→E+T | T
T→T*F | F
F→(E) | id
(ii) Parse the string id+id*id (4)
5. (i).Describe on detail about the various types of parser (7) Remember BTL1
(ii)Discuss about the context-free grammar. (6)
6. (i).Discuss in detail aabout the role of parser. (7) Remember BTL1
(ii).What are the Error recovery techniques used in Predictive (6)
parsing? Explain in detail.
7. (i)Give the predictive parser table for the following grammar. (8) Understand BTL2
S→ (L) | a
L→ L, S | S (5)
(ii)Parse the string (a, (a, a)) .
8. Analyze the following grammar is a LALR grammar. (13) Analyze BTL4
S->CC
C->cC|d
(ii)Parse the input string ba using the table generated.
9. (i)Define YACC parser generator. List out the Error recovery (8) Remember BTL1
actions in YACC.
(ii) Define SLR (1) parser. Describe the Steps for the SLR parser. (5)
10. (i) Show SLR parsing table for the following grammar (9) Apply BTL3
A->(A)|a

(ii)Differentiate SLR and CLR (4)


11. Solve the following grammar to generate the SLR parsing table. (13) Understand BTL2
E→E+T | T

T→T*F | F

F→F*| a| b
12 (i)Consider the following grammar (10) Apply BTL3
S →AS|b
A→SA|a.
Construct the SLR parse table for the grammar.
(ii)Show the actions of the parser for the input string “abab”. (3)
13. Give the LALR for the given grammar. (13) Understand BTL2
S->AA
A->Aa|b
14. Examine the following grammar using canonical parsing table. (13) Remember BTL1
S->CC
C->cC|d
PART-C (15 -MARKS)
1. (i)What is Leftmost derivation and Rightmost derivation . (8) Create BTL6
Draw leftmost derivation and Rightmost derivation for the following.
E->E+E|E*E| id
(ii)What is an ambiguous and unambiguous grammar? Identify (7)
the following grammar is ambiguous or not.
E→E+E | E*E | (E)|-E |id for the sentence id +id*id

2 Explain in detail about the various types of Top –down parsing. (15) Evaluate BTL5

3 Analyze the LR parsing algorithm with an example (15) Analyze BTL4

4 (i)What is CFG .Explain in detail about the Context-Free (8) Evaluate BTL5
Grammar
(ii)Construct Stack implementation of shift reduce parsing for the (7)
grammar
E->E+E
E->E*E
E->(E)
E->id and the input string id1+id2*id3
.
UNIT-III INTERMEDIATE CODE GENERATION
Syntax Directed Definitions, Evaluation Orders for Syntax Directed Definitions, Intermediate
Languages: Syntax Tree, Three Address Code, Types and Declarations, Translation of Expressions,
Type Checking.

PART-A (2 - MARKS)
1. List out the two rules for type checking. Remember BTL1
2. Compare synthesized attributes and inherited attributes. Analyze BTL4
3. What is Annotated parse tree? Remember BTL1
4. Define Type checker. Remember BTL1
5. What is a syntax tree? Draw the syntax tree for the assignment Create BTL6
statement a := b * -c + b * -c
6. Define type systems. Remember BTL1
7. Express the rule for checking the type of a function. Understand BTL2
8. Define Syntax directed definition of a simple desk calculator. Remember BTL1
9. Identify the different types of intermediate representation. Evaluate BTL5
10. Give the difference between syntax-directed definitions and Understand BTL2
translation schemes.
11. State the type expressions. Remember BTL1
12. Illustrate the methods of implementing three-address statements. Apply BTL3
13. Differentiate S-attribute and L-attribute definitions. Analyze BTL4
14. Create postfix notation for the given expression a+b*c. Create BTL6
15. Translate the conditional statement if a<b then 1 else 0 into three Understand BTL2
address code.
16. Test whether the following rules are L-attribute or not? Semantic Evaluate BTL5
rules
A.s = B.b;
B.i = f(C.c,A.s)
17. What are the methods of representing a syntax tree? Understand BTL2
18. Explain the syntax directed definition for if-else statement Analyze BTL4
19. Examine the usage of syntax directed definition Apply BTL3
20. Show the three address code sequence for the assignment Apply BTL3
statement. d=(a-b)+(a-c)+(a-c)
PART-B (13- MARKS )
1. Discuss the following in detail about the Syntax Directed Understand BTL2
Definitions.
(i)Inherited Atrributes and Synthesized attributes. (7)
(ii) Evaluate SDD of a parse tree. (6)
Identify the annotated parse tree for the following expression Evaluate BTL5
2. (i)(3+4)*(5+6)n (6)
(ii)1*2*3*(4+5)n (7)
Using the given SDD
Production Semantic Rules
D —>TL L.inh = T.type

T —> int T.type =integer

T —> float T.type = float

L —> L1, id L1.inh = L.inh


addType (id.entry, Linh)

3. Suppose that we have a production A→BCD. Each of the four non (13) Analyze BTL4
terminal A, B, C and D have two attributes: S is a synthesized
attribute and i is an inherited attribute. Analyze For each of the sets
of rules below tell whether (i)the rules are consistent with an S-
attributed definition(ii) the rules are consistent with an L-attributed
definition and(iii) whether the rules are consistent with any
evaluation order at all?
a) A.s = B.i + C.s
b) A.s = B.i + C.s and D.i = A.i + B.s.

4. Illustrate in detail about the various instructions forms of three Apply BTL3
address instruction with suitable examples (!3)
5. Discuss in detail about Understand BTL2
(i)Dependency graph (10)
(ii)Ordering Evaluation of Attributes. (3)

6. Create variants of Syntax tree. Explain in detail about it with (13) Create BTL6
suitable examples.
7. (i).Analyse the common three address instruction forms. (7) Analyze BTL4
(ii). Explain the two ways of assigning labels to the following three (6)
address statements
Do i=i+1;
While (a[i]<v);
8. Describe.in detail about Remember BTL1
(i) Quadruples (7)
(ii) Triples. (6)
9. (i) Describe in detail about addressing array Elements. (6) Remember BTL1
(ii) Discuss in detail about Translation of array reference. (7)
Describe in detail about types and declaration with suitable (13) Remember BTL1
10. examples.
11. Compare three address code for expression with the Incremental (13) Analyze BTL4
translation.
12. Show the intermediate code for the following code segment along (13) Understand BTL2
with the required syntax directed translation scheme
while ( i < 10 )
if ( i % 2 == 0 )
evensum = evensum + i
else
oddsum = oddsum + i

13. (i)State the rules for type checking with example. (7) Remember BTL1
(ii) Give an algorithm for type inference and polymorphic function. (6)
14. Illustrate an algorithm for unification with its operation. (13) Apply BTL3
PART-C(15 -MARKS)
1. Create the following uind the arithmetic expression a+- (b+c)* (15) Create BTL6
into
(i)Syntax tree
(ii)Quadruples
(iii)Triples
(iv)Indirect Triples
2. Explain what is SDD and examine syntax-directed definition to (15) Evaluate BTL5
differentiate expressions formed by applying the arithmetic
operators + and * to the variable x and constants ; expression :
x*(3*x+x*x)

3. Generate an intermediate code for the following code segment (15) Create BTL6
with the required syntax-directed translation scheme.
if ( a > b)
x=a+b
else
x=a-b
4. What is Type conversion? What are the two types of type (15) Evaluate BTL5
conversion? Formulate the rules for the type conversion.
UNIT IV- RUN-TIME ENVIRONMENT AND CODE GENERATION
Storage Organization, Stack Allocation Space, Access to Non-local Data on the Stack, Heap
Management - Issues in Code Generation - Design of a simple Code Generator.
PART-A (2 -MARKS)
1. List out limitations of the static memory allocation. Remember BTL1
How the storage organization for the run-time memory is Apply BTL3
2.
organized?
3. What is heap allocation? Remember BTL1
4. How the activation record is pushed onto the stack. Apply BTL3
5. Explain the storage allocation strategies. Analyze BTL4
6. State the principles for designing calling sequences. Remember BTL1
7. List out the dynamic storage techniques. Remember BTL1
8. Define the non-local data on stack. Remember BTL1
9. Define variable data length on the stack. Remember BTL1
10. Differentiate between stack and Heap allocation Analyze BTL4
11. Distinguish between static and dynamic storage allocation. Understand BTL2
12. Discuss the main idea of Activation tree. Understand BTL2
13. Give the fields in an Activation record. Understand BTL2
14. Compose space efficiency and program efficiency. Create BTL6
15. Construct typical memory hierarchy configuration of a computer. Evaluate BTL5
16. How would you solve the issues in the design of code generators? Apply BTL3
17. Evaluate Best-fit and Next-fit object placement. Evaluate BTL5
Prepare optimal code sequence for the given sequence Create BTL6
t=a+b
18.
t=t*c
t=t/d
19. Analyze the different forms of machine instructions. Analyze BTL4
20. Discuss the four principle uses of registers in code generation. Understand BTL2
PART-B (13- MARKS )
1. (i)Illustrate the storage organization memory in the perspective of (8) Apply BTL3
compiler writer with neat diagram.
(ii)Compare static versus dynamic memory allocation. (5)
2. Explain in detail about the various issues in code generation with Evaluate BTL5
examples. (13)
3. (i)Develop a quicksort algorithm to reads nine integers into an (9) Create BTL6
array a and sorts them by using the concepts of activation tree.
(ii)Give the structure of the action record. (4)
4. How to a design a call sequences and analyze the principles of (13) Analyze BTL4
activation records with an example.
5. Discuss in detail about the activation tree and activation record (13) Understand BTL2
with suitable example
6. (i) Analyze the data access without nested procedure and the issues (7) Analyze BTL4
with nested procedure.
(ii)Give the version of quicksort in ML style using nested (6)
procedure.
7. (i)Discuss in detail about heap manager. (7) Understand BTL2
(ii)Describe in detail about the memory hierarchy of a computer (6)
8. Define fragmentation? Describe in detail about how to reduce the (13) Remember BTL1
fragment.
9. Write short notes on the following Remember BTL1
i. Best fit and next object placement. (7)
ii. Managing and coalescing free space (6)
10. Examine the problems with manual deallocation of memory and (13) Remember BTL1
explain how the conventional tools are used to cope with the
complexity in managing memory.
11. Explain in detail about instruction selection and register allocation (13) Analyze BTL4
of code generation.
12. Illustrate in detail about the code generation algorithm with an (13) Apply BTL3
example.
13. Describe the usage of stack in the memory allocation and discuss (13) Understand BTL2
in detail about stack allocation space of memory.
14. Define the heap management of memory and describe in detail (13) Remember BTL1
about it .
PART-C (15-MARKS)
1. Suppose the heap consists of seven chunks, starting at address (15) Evaluate BTL5
0. The sizes of the chunks, in order, are 80, 30, 60, 50, 70, 20, 40
bytes. When we place an object in a chunk, we put it at the high
end if there is enough space remaining to form a smaller chunk (so
tha t the smaller chunk can easily remain on the linked list of free
space). However, we cannot tolerate chunks of fewer that 8 bytes,
so if an object is almost as large as the selected chunk,we give it
the entire chunk and place the object at the low end of the chunk.If
we request space for objects of the following sizes: 32, 64, 48, 16,
in that order, what does the free space list look like after satisfying
the requests, if the
method of selecting chunks is a) First fit.b) Best fit.
2. Compare the stack and heap allocation memory in detail with (15) Analyze BTL4
suitable examples.
3. Generate code for the following sequence assuming that n is in a (15) Create BTL6
memory location
s=0
i=0
L1 : if I > n goto L2
s=s+i
i=i+1
goto L1
L2 :
4. Create following assignment statement into three address code (15) Create BTL6
D:=(a-b)*(a-c)+(a-c)
Apply code generation algorithm to generate a code sequence for
the three address statement. (13)
UNIT V- CODE OPTIMIZATION
Principal Sources of Optimization – Peep-hole optimization - DAG- Optimization of Basic Blocks
Global Data Flow Analysis - Efficient Data Flow Algorithm.
PART-A (2 -MARKS)
1. List out the examples of function preserving transformations. Remember BTL1
2. Illustrate the concepts of copy propagation. Apply BTL3
3. State the use of machine Idioms. Remember BTL1
4. Show the flow graph for the quicksort algorithm Apply BTL3
5. Apply Apply BTL3
6. Identify the constructs for optimization in basic block. Remember BTL1
7. List out the properties of optimizing compilers. Remember BTL1
8. Define the term data flow analysis. Remember BTL1
9. How is liveness of a variable calculated? Identify it. Remember BTL1
10. What is DAG? Point out advantages of DAG. Analyze BTL4
11. Give the uses of gen and Kill functions Understand BTL2
12. Discuss the concepts of basic blocks and flow graphs. Understand BTL2
13. Give the main idea of dead code elimination and constant folding. Understand BTL2
14. Prepare the three address code sequence for the assignment Create BTL6
statement.
d:= ( a- b) + (a-c) + (a-c).
15. Construct and explain the DAG for the follow basic block. Evaluate BTL5
d:= b * c
e:= a+ b
b:= b*c
a:= e-d.
16. What role does the target machine play on the code generation Analyze BTL4
phase of the compiler? Analyze it.
17. Draw the DAG for the statement a= (a*b+c) – (a*b+c) and Evaluate BTL5
evaluate it.
18. Develop the code for the follow C statement assuming three Create BTL6
registers are available.
x = a / (b + c) – d * (e + f)
19. Point out the characteristics of peephole optimization. Analyze BTL4
20. Define algebraic transformations. Give an example Understand BTL2
PART-B(13 MARKS )
1. Explain briefly about the principal sources of optimization. (13) Evaluate BTL5

2. (i).Explain in detail about optimization of basic blocks. (5) Analyze BTL4


(ii).Construct the DAG for the following Basic block & explain it. (8)
1. t1: = 4 * i
2. t2:= a [t1]
3. t3: = 4 * i
4. t4:= b [t3]
5. t5:=t2*t4
6. t6:=Prod+t5
7. Prod:=t6
8. t7:=i+1
9. i:= t7
10. if i<= 20 goto (1).
3. Discuss the following in detail Understand BTL2
(i)Semantic preserving transformation (7)
(ii)Global Common subexpression (6)
4. Write about the following in detail (5) Remember BTL1
(i)copy propagation (5)
(ii)Dead code Elimination (3)
(iii)code motion
5. Explain in detail about the data-flow schemas on basic block and (13) Analyze BTL4
the transfer equations for reaching definitions with example
6. (i) Illustrate the Iterative algorithm for reaching definitions (7) Apply BTL3
(ii)Discuss the live variable analysis (6)
7. Analyze Peephole optimization with suitable examples. (13) Analyze BTL4
8. Demonstrate optimization of Basic Blocks with an example. (13) Apply BTL3
9. (i)Discuss in detail about how to find Local Common Sub (8) Understand BTL2
expressions.
(ii)Discuss in detail about the Use of Algebraic Identities. (5)
10. Describe in detail about the flow of control optimization. (7) Remember BTL1
Identify the methods to eliminate the unreachable code, load and
store data. (6)
11. (i)Give an example to identify the dead code in the DAG. (5) Remember BTL1
(ii)Describe the representation of array using DAG with example. (8)
12. Summarize in detail about the dataflow analysis of available (13) Understand BTL2
expression with suitable example.
13. (i)Formulate steps to identify the loops in the basic block. (7) Create BTL6
(ii) Describe about induction variable and end reduction in strength (6)
14. Describe the efficient data flow algorithms in detail. (13) Remember BTL1
PART-C(15 MARKS)
1. Create DAG and three – address code for the following C (15) Create BTL6
program. (15)
i = 1; s = 0;
while ( i<= 10)
{
s = s+ a[i] [i];
i = i + 1;
}
2. (15) Create BTL6

Identify the loops of the flow graph


Identify the global common sub expression for each loop
Identify Induction variables for each loop
Identify loop invariant computation for each loop
3. (15) Evaluate BTL5

 Compute the grn and Kill sets for each Block


 In and Out sets for each block
 Compute e_gen and e_kill
4. Analyze the available expressions on the following code by (15) Analyze BTL4
converting into basic blocks and compute global common sub –
expression elimination. (15)
i=0
a:= n-3
if i < a then loop else end
label loop
b:= i -4
c:= p + b
d:= M[c]
e:=d-2
f:=i-4
g:=p+f
m[g]:=e
i:=i+1
a:=n-3
if i < a then loop else end
label end

You might also like