| 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 |