资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,9/23/2004,Lec 1-2,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,9/23/2004,Lec 1-2,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,1,CS 201Compiler Construction,Lecture 1,Introduction,2,Instructor Information,Rajiv Gupta,Office:Engg.II Room 408,Tel:(951)827-2558,Office Hours:T,Th 1-2 pm,TA:Min Feng,Office:Engg II Room 463,Tel:(951)827-2001,Office Hours:M,W 1:30-2:30pm,3,Course Requirements,Grading:,Test 1:30 points,Test 2:30 points,Project:25 points,Homeworks:15 points,4,Course Overview,Nodes Basic Blocks:Basic block consists of a sequence of intermediate code statements that must be entered at the top and exited at the bottom,i.,First instruction in the program,where op in +,-,*,/,%,Test 1:30 points,CFG Construction Algorithm,dst=src1 op src2,*dst=src,CFG Construction Algorithm,conditional:,conditional:,goto label,Tel:(951)827-2558,If T3=0 goto 11,Intermediate Code can be transformed from linear representation to a directed graph form called Control flow Graph:,Office Hours:M,W 1:30-2:30pm,Tel:(951)827-2001,Three Address Intermediate Code,Arithmetic Operations,dst,=,src1,op,src2,where op,in,+,-,*,/,%,Relational Operators,dst,=,src1,relop,src2,where relop in=,Logical Operations,dst,=,src,lop,src2,where lop in|,&,dst,=!,src,5,Three Address Intermediate Code,Array Accesses,dst,=,src,index,dst,index,=,src,Pointers,dst,=&,src,*,dst,=,src,Copy Assignment,dst,=,src,6,Three Address Intermediate Code,Branches,unconditional:,goto,label,conditional:,if,predicate,goto,label,or,if,src1,relop,src2,goto,label,labels:,declared or instruction numbers,7,Examples,8,See handouts.,9,Control Flow Graph(CFG),Intermediate Code can be transformed from linear representation to a directed graph form called,Control flow Graph:,Nodes,Basic Blocks,:Basic block consists of a sequence of intermediate code statements that must be entered at the top and exited at the bottom,i.e.once the block is entered,all intermediate code statements will be executed.,Edges:directed edges connect basic blocks according to control flow.,CFG representation will be used for program analysis and optimization.,Course Overview,Nodes Basic Blocks:Basic block consists of a sequence of intermediate code statements that must be entered at the top and exited at the bottom,i.,CFG Construction Algorithm,goto label,Relational Operators,B2 immediately follows B1 in program order and B1 does not end in an unconditional branch.,Construct Basic Blocks:,There is a conditional or unconditional branch from the last statement in B1 to the leader of B2;or,Intermediate Code can be transformed from linear representation to a directed graph form called Control flow Graph:,Course Overview,CFG Construction Algorithm,If T3=0 goto 11,CFG Construction Algorithm,CFG Construction Algorithm,goto label,CFG Construction Algorithm,Identify Leaders:the first instruction in a basic block is a leader.,First instruction in the program,Target instruction of a conditional or unconditional branch,Instruction immediately following a conditional or unconditional branch,Construct Basic Blocks:,Starting from the leader append subsequent instructions up to,but not including,the next leader or the end of the program,10,CFG Construction Algorithm,Add Edges:add a directed edge from basic block B1 to basic block B2 if:,There is a conditional or unconditional branch from the last statement in B1 to the leader of B2;or,B2 immediately follows B1 in program order and B1 does not end in an unconditional branch.,11,Example,12,A=4,T1=A*B,T2=T1/C,If T2=0 goto 11,goto 3,Halt,lWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B
展开阅读全文