CS447 Lecture Notes - Lecture 1: Basic Block
Document Summary
So far, we"ve seen a number of coverage criteria for graphs, but i"ve been vague about how to actually construct graphs. For the most part, it"s fairly obvious, and you"ve done it on assignments. Remember that we rst de ned the structural criteria: nc, ec, epc, Ppc, spc, cpc. (why are adc, auc, adupc, crtc, srtc inapplicable?) Fundamental graph for source code: control-flow graph (cfg): cfg nodes: zero or more statements, cfg edges: an edge (s1, s2) indicates that s1 may be followed by s2 in an execution. De nition 1 a basic block has one entry point and one exit point. Note that a basic block may have multiple successors. However, there may not be any jumps into the middle of a basic block (which is why statement l0 has its own basic block. ) We"ll now see how to construct control- ow graph fragments for various program constructs.