A graph representation of program control flow.

We use a node for each statement or block
We use an edge for control movements

We can analyze these control flow graphs using our Dataflow Analysis as well.