1 / 12

CS 201 Compiler Construction

CS 201 Compiler Construction. Lecture 1 Introduction. Instructor Information. Rajiv Gupta Office: Engg.II Room 408 E-mail: gupta@cs.ucr.edu Tel: (951) 827-2558 Office Hours: T, Th 1-2 pm TA: Min Feng Office: Engg II Room 463 E-mail: mfeng@cs.ucr.edu Tel: (951) 827-2001

malini
Télécharger la présentation

CS 201 Compiler Construction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 201Compiler Construction Lecture 1 Introduction

  2. Instructor Information Rajiv Gupta Office: Engg.II Room 408 E-mail: gupta@cs.ucr.edu Tel: (951) 827-2558 Office Hours: T, Th 1-2 pm TA: Min Feng Office: Engg II Room 463 E-mail: mfeng@cs.ucr.edu 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

  5. 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

  6. Three Address Intermediate Code Array Accesses dst = src[index] dst[index] = src Pointers dst = & src * dst = src Copy Assignment dst = src

  7. 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

  8. Examples 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.

  10. 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

  11. 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.

  12. Example • A = 4 • T1 = A * B • T2 = T1 / C • If T2<W goto 7 • M = T1 * K • T3 = M + I • H = I • M = T3 – H • If T3>= 0 goto 11 • goto 3 • Halt

More Related