Animated Introduction
This commit is contained in:
parent
6e2ab8afd1
commit
e888551e89
20 changed files with 935 additions and 112 deletions
42
figs/example-sdg-1.dot
Normal file
42
figs/example-sdg-1.dot
Normal file
|
@ -0,0 +1,42 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
node [style=invis];
|
||||
edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
edge [style = invis];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
42
figs/example-sdg-2.dot
Normal file
42
figs/example-sdg-2.dot
Normal file
|
@ -0,0 +1,42 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
node [style=invis];
|
||||
edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
edge [style = invis];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
42
figs/example-sdg-3.dot
Normal file
42
figs/example-sdg-3.dot
Normal file
|
@ -0,0 +1,42 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
edge [style = invis];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
41
figs/example-sdg-4.dot
Normal file
41
figs/example-sdg-4.dot
Normal file
|
@ -0,0 +1,41 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = blue, style = invis]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen, style = invis]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
41
figs/example-sdg-5.dot
Normal file
41
figs/example-sdg-5.dot
Normal file
|
@ -0,0 +1,41 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen, style = invis]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
41
figs/example-sdg-6.dot
Normal file
41
figs/example-sdg-6.dot
Normal file
|
@ -0,0 +1,41 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
41
figs/example-sdg.dot
Normal file
41
figs/example-sdg.dot
Normal file
|
@ -0,0 +1,41 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
41
figs/example-slice-1.dot
Normal file
41
figs/example-slice-1.dot
Normal file
|
@ -0,0 +1,41 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
45
figs/example-slice-2.dot
Normal file
45
figs/example-slice-2.dot
Normal file
|
@ -0,0 +1,45 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()"];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0"];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod"];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l3 l4 l9};
|
||||
l1 -> l10 [color = black, style = bold];
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l6} [color = grey]; // prod
|
||||
{l3 l6} -> {l10} [color = darkgreen, style = bold]; // prod
|
||||
{x l7} -> {l4 l7} [color = grey]; // x
|
||||
}
|
||||
}
|
45
figs/example-slice-3.dot
Normal file
45
figs/example-slice-3.dot
Normal file
|
@ -0,0 +1,45 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l3 l4 l9};
|
||||
l1 -> l10 [color = black, style = bold];
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l6} [color = grey]; // prod
|
||||
{l3 l6} -> {l10} [color = darkgreen, style = bold]; // prod
|
||||
{x l7} -> {l4 l7} [color = grey]; // x
|
||||
}
|
||||
}
|
46
figs/example-slice-4.dot
Normal file
46
figs/example-slice-4.dot
Normal file
|
@ -0,0 +1,46 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)"];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l4 l9 l10};
|
||||
l1 -> l3 [color = black];
|
||||
l4 -> {l5 l7};
|
||||
l4 -> l6 [style = bold, color = black];
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l10} [color = grey]; // prod
|
||||
{l3 l6} -> l6 [color = darkgreen];
|
||||
{x l7} -> {l4 l7} [color = grey]; // x
|
||||
}
|
||||
}
|
46
figs/example-slice-5.dot
Normal file
46
figs/example-slice-5.dot
Normal file
|
@ -0,0 +1,46 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)", style = filled];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l4 l9 l10};
|
||||
l1 -> l3 [color = black];
|
||||
l4 -> {l5 l7};
|
||||
l4 -> l6 [style = bold, color = black];
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l10} [color = grey]; // prod
|
||||
{l3 l6} -> l6 [color = darkgreen];
|
||||
{x l7} -> {l4 l7} [color = grey]; // x
|
||||
}
|
||||
}
|
45
figs/example-slice-6.dot
Normal file
45
figs/example-slice-6.dot
Normal file
|
@ -0,0 +1,45 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)", style = filled];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--"];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l3 l9 l10};
|
||||
l1 -> l4 [color = black];
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in"];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = grey]; // prod
|
||||
{x l7} -> {l4} [color = red, style = bold]; // x
|
||||
{x l7} -> {l7} [color = grey]; // x
|
||||
}
|
||||
}
|
45
figs/example-slice-7.dot
Normal file
45
figs/example-slice-7.dot
Normal file
|
@ -0,0 +1,45 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)", style = filled];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--", style = filled];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l3 l9 l10};
|
||||
l1 -> l4 [color = black];
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in", style = filled];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = grey]; // prod
|
||||
{x l7} -> {l4} [color = red, style = bold]; // x
|
||||
{x l7} -> {l7} [color = grey]; // x
|
||||
}
|
||||
}
|
45
figs/example-slice-8.dot
Normal file
45
figs/example-slice-8.dot
Normal file
|
@ -0,0 +1,45 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)", style = filled];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--", style = filled];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = "bold,filled"];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
edge [color = grey];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6};
|
||||
l4 -> l7 [color = black];
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
edge [color = grey];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in", style = filled];
|
||||
l1 -> x [color = black];
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = grey]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = grey]; // prod
|
||||
{x l7} -> {l7} [color = red]; // x
|
||||
{x l7} -> {l4} [color = grey]; // x
|
||||
}
|
||||
}
|
41
figs/example-slice.dot
Normal file
41
figs/example-slice.dot
Normal file
|
@ -0,0 +1,41 @@
|
|||
digraph g {
|
||||
l1 [label = "Enter f()", style = filled];
|
||||
l2 [label = "2: int sum = 0"];
|
||||
l3 [label = "3: int prod = 0", style = filled];
|
||||
l4 [label = "4: while (x > 0)", style = filled];
|
||||
l5 [label = "5: sum += sum"];
|
||||
l6 [label = "6: prod *= prod", style = filled];
|
||||
l7 [label = "7: x--", style = filled];
|
||||
l9 [label = "9: log(\"sum: \" + sum)"];
|
||||
l10 [label = "10: log(\"prod: \" + prod)", style = filled];
|
||||
// graph order
|
||||
{rank=min; l1};
|
||||
{rank=same; l2 l3 l4 l9 l10};
|
||||
{rank=max; l5 l6 l7};
|
||||
{ edge [style=invis];
|
||||
l2 -> l3 -> l4 -> l9 -> l10;
|
||||
l5 -> l6 -> l7;
|
||||
}
|
||||
|
||||
{ // control edges
|
||||
// edge [style=invis];
|
||||
l1 -> {l2 l3 l4 l9 l10};
|
||||
l4 -> {l5 l6 l7};
|
||||
}
|
||||
|
||||
{ // data input
|
||||
node [style=dashed];
|
||||
// node [style=invis];
|
||||
// edge [style=invis];
|
||||
x [label = "x = x_in", style = filled];
|
||||
l1 -> x;
|
||||
x -> {l2} [style=invis];
|
||||
}
|
||||
|
||||
{ // data edges
|
||||
edge [color=red,constraint=true];
|
||||
{l2 l5} -> {l5 l9} [color = blue]; // sum
|
||||
{l3 l6} -> {l6 l10} [color = darkgreen]; // prod
|
||||
{x l7} -> {l4 l7} [color = red]; // x
|
||||
}
|
||||
}
|
14
figs/exception-hierarchy.dot
Normal file
14
figs/exception-hierarchy.dot
Normal file
|
@ -0,0 +1,14 @@
|
|||
digraph g {
|
||||
node [shape = rect];
|
||||
Exception;
|
||||
Error [style="dashed"];
|
||||
RuntimeException [style="dashed"];
|
||||
Throwable -> {Exception Error};
|
||||
Exception -> RuntimeException;
|
||||
{ node [label="...",style=dashed];
|
||||
a [style=""];
|
||||
Exception -> a;
|
||||
Error -> b;
|
||||
RuntimeException -> c;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue