Da quello che posso ricordare i Control-Flow Graphs per i quali ho visto le immagini sono state per lo più di singole funzioni. Quindi fondamentalmente solo affermazioni con forse il looping. Ma mi chiedo che aspetto avrà un grafico del flusso di controllo per una funzione, che può fare riferimento a funzioni annidate, che possono fare riferimento ad altre funzioni annidate, ecc.
Ad esempio, ecco un insieme di funzioni:
function a(x) {
var m = b(x)
var n = c(x)
return m + n
}
function b(x) {
var m = d(x)
var n = e(x)
return m * n
}
function c(x) {
var m = d(x)
var n = e(x)
return m - n
}
function d(x) {
var i = x
var o
while (i--) {
if (i % 2 == 0) {
o += (x * 2)
} else {
o -= (x * 3)
}
}
return o
}
function e(x) {
var i = x
var o
while (i--) {
if (i % 3 == 0) {
o += (x * 3)
} else {
o -= (x + 3)
}
}
return o
}
Chiedendosi come sarebbe un diagramma di flusso di controllo, o forse solo la parte di nidificazione per iniziare.
a(x)
___________|___________
| |
var m = b(x) var n = c(x)
| |
? ?
Sperando di farlo senza incorporare le funzioni, che è solo un artefatto delle funzioni di esempio scelte.