| Extraction of High-level Semantics from Software Code |
public int add
ArrayList<St
int nWidth =
while (st <
int height
if (st * r
img.chec
} else if
...
Disclaimer: Not much has been done.
| Backgrounds |
Software controls...
How many had software glitch in the past month?
Apple's "GotoFail" (2014)
static OSStatus
SSLVerifySignedServerKeyExchange(...)
{
OSStatus err;
...
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
...
fail:
SSLFreeBuffer(&signedHashes);
SSLFreeBuffer(&hashCtx);
return err;
}
| Problem Description |

a = 100; b = 2; c = a + b; d = a * c; ...
if (c == 1) {
b = b - 100;
a1 = a1 + 1;
} else if (c == 2) {
b = b - 300;
a2 = a2 + 1;
} else
...
b?
if (choice == 1) {
money = money - 100;
item1 = item1 + 1;
} else if (choice == 2) {
money = money - 300;
item2 = item2 + 1;
} else
...
money : Quantity you can exchange with any item.
if (x) {
y = y - 1;
}
if (y == 0) {
g();
}
...
y?
if (hit) {
life = life - 1;
}
if (life == 0) {
gameover();
}
...
life : Quantiy that decreases when you're hit. | Methodology |
pow(x, y) {
z = 1;
while (0 < y) {
z *= x;
y -= 1;
}
return z;
}
if (c == 1) {
b = b - 10
a1 = a1 +
} else if (c =
...
| Wrap-up |