ืงืื ืืืฉืืื ืฉืชื ืชืืื ืืืช ืฉืขืืืจืืช ืฉืชืืื ืื ืืืืงื ืฉืืชื ืืืชืืื. ืืืช ื ืืื ื. ืืฉื ืืื ืืฉ ืฉืืืืช ืืืืืง ืืืคืก ืฉืืืคืขืืช ืจืง ืืืฉืจ ืฉืืืื ืืกืืื ืฉื ืงืืืื ืืืืข ืื ืืื ืืช, ืฉืืืื ืฉืืืืืงืืช ืฉืืื ืืขืืื ืื ืืืืฆืจืืช. ืืืืงืืช ืืกืืจืชืืืช ืืื ื ืืืืืืช ืืืืจ ืืื ืืืื ืืื ืืื ืืืื. ืคืจืฉื ืืช ืืืคืฉืืช ืื.
ืคืจืฉื ืืช ืืืคืฉืืช ืืื ืืืกืืจืช ืืืชืืืืช ืืืขื ืืงื ืืืื ื ืืชืื ืกืืื ืืช ืืืืืืช ืืืฉืื ืขื ืื ืืืชื ืืืืืืช ืืืคืฉืจืืืช ืฉื ืชืืื ืืช ืืืื ืืืจืืฅ ืืืชื. ืืืื ืืืื ืืงื ืืขืืืืช ืืืืืจื ื-Infer ืฉื ืคืืืกืืืง ืืืฆืืืช ืืืืื ืืืฆืืืข ืจืืง ืืงื ื ืืืื ืืืื, ืืขืืืืช ืืืืืจื ืื ืชื Astrรฉe ืืืืืช ืจืฉืืืช ืืช ืชืืื ืช ืืงืจืช ืืืืกื ืฉื ืืืืจืืืก, ืืืืืืจื ืื ืื ืชื ืกืืื ืฉืืืขื ืืชืงืื ืืช, ืืขืจืืืช ืฉืื ืชืืื ืืช ืขืืืจืช ืืช ืื ืืชืื, ืืื ืืืืช ื ืงืืื ืืกืื ืืฉืืืืืช ืื ืืืง. ืืื ืช ืืืคื ืคืขืืืชื ืืกืืืจื ืืืืข ืืืื ืืกืืืืื ืืืฆืืื ืืืืื ืฉืืืจืื ืืคืกืคืกืื, ืืืืืข ืขืจืืืืืช ืืื ืืืืขืืช ืขื ืคืฉืจืืช ืกืคืฆืืคืืืช.
ื ืืชืื ืงืื ืืืื ืืืจืืฅ ืืืชื
SMART TS XL ืืืืฉืืช ื ืืชืื ืกืืื ืืื ื ืื ืืื ืืช ืืื ืฉืคื ืืชืืง ืืขืืืืืช ืฉืื.
ืืืืข ื ืืกืฃืืื ืคืจืฉื ืืช ืืืคืฉืืช?
ืคืืจืืฉ ืืืคืฉื ืืื ืชืืืืจืื ืฉื ืงืืจืื ืชืืื ืืืช, ืฉืคืืชืื ืขื ืืื ืคืืจืืง ืงืืกืื ืืจืืื ืงืืกืื ืืฉื ืช 1977. ืืจืขืืื ืืืจืืื: ืืืงืื ืืืฉื ืืช ืืงืืืฆื ืืืืืืงืช ืฉื ืื ืืฆืื ืืชืืื ืืช ืืืคืฉืจืืื, ืฉืืืจื ืืื ืืื ื ื ืืชื ืช ืืืืจืขื, ืืืฉื ืงืืจืื ืืชืจ ืืืื ืืืืฆืขืืช ืชืืื ืืชืืื ืคืฉืื ืฉื ืืชื ืื ืชื.
ืืืืื "ืืืกืืจืงื" ืืื ืืื ื ืืชืืืืกืช ืืืขืืจืคื ืื ืืืฉืื. ืืื ืืชืืืืกืช ืืคืขืืื ืืชืืืืช ืกืคืฆืืคืืช: ืืคืฉืืช ืงืืืฆื ืฉื ืขืจืืื ืงืื ืงืจืืืื ืืืืฆืื ืคืฉืื ืืืชืจ ืฉืฉืืืจ ืขื ืืชืืื ืืช ืืืฉืืืืช ืื ืชืื ืืืื ืขืืช ืืคืจืืื ืืืืชืจืื. ืขืจื ืฉืื ืงืื ืงืจืื ืืื 42 ืืืคืืช, ืืืคืฉืื ืฉื โโื ืืชืื ืกืืื ืื, ืคืฉืื ื"ืืืืืืช". ืืืคืฉืื ืืืืืช ืืืืข (ืืื ื ืืืืข ืขืื ืืช ืืขืจื ืืืืืืง) ืื ืืงืืืช ืืืืืช ืขืงืืืืช (ืืกืืื ืฉื ืื ืืกืคืจ ืฉืื ืืื ืืืช ืืฉืืืฉ ืืคืฉืจืืืืช: ืืืืื, ืฉืืืื ืื ืืคืก).
ืื ืฉืืืคื ืืช ืื ืืฉืืืืฉื ืื ืืชืื ืชืืื ืืืช ืืื ืืขืจืืืช ืฉืืืืขื ืืืชื: ืื ืื ืืชืื ืื ืืืฆื ืฉืืืื ืืชืืื ืืืืคืฉื, ืื ืงืืืืช ืฉืืืื ืืฉืื ืืืฆืืข ืงืื ืงืจืื. ืื ืืื ืืืฆื ืฉืืืื ืคืืื ืฆืืืืืช, ืฉืืืื ืื ืขืฉืืื ืืืชืจืืฉ ืื ืื ืืืชืจืืฉ ืืคืืขื, ืื ืื ื ืืชื ืืืกืชืืจ ืฉืืืื ืืืืชืืช. ืืืื ืชืงืื ืืช.
ืคืจืฉื ืืช ืืืคืฉืืช ืืขืืืช ื ืืชืื AST ืืขืืืช ื ืืชืื ืืื ืื
ืืื ืืื ืืื ืืชืืืืืื ืืขืชืื ืงืจืืืืช, "ื ืืชืื ืงืื AST" ืืืคืืข ืื ืชืื ื ืืืืคืืฉ ืขืืืจ ืืืืจ ืื, ืืื ืืชืืจืื ืืืจืื ืฉืื ืื.
ืขืฅ ืชืืืืจ ืืืคืฉื ืืื ืืื ื ื ืชืื ืื ืืืืืฆื ืืช ืืืื ื ืืืงืืืงื ืฉื ืงืื ืืืงืืจ. ืื ืืืืจ ืืงื ืืืืืจ ืืื ื ืขืฅ ืืื. ืืื ืืืกืืก ืื ืืชืื, ืืื ืฉืืคืืฅ ืื ืืชืื ืกืืื ืืืืกืก ืชืื ืืืช. ื ืืชืื ืืืืกืก AST ืืืฆื ืชืื ืืืช: ืงืื ืฉืชืืื ืืื (ืคืื ืงืฆืื ืขื ืืืชืจ ืืื ืคืจืืืจืื, ืืืจืืืช SQL ืฉื ืื ืชื ืขื ืืื ืฉืจืฉืืจ) ืืกืืื ืืืื. ืืื ืืื ื ืืชืืฉื ืืขืจืืื ืื ืืืชื ืืืืช ืืืื ืจืืฆื.
ืคืจืฉื ืืช ืืืคืฉืืช ืืืฉืคืช ืืช ืืชื ืืืืช ืืื ืืจืืฆื ืืืื ืืืจืืฅ ืืช ืืชืืื ืืช. ืืื ืืฉืชืืฉืช ื-AST ืืงืื ืื ืืืืืช ืืจืื ืืขืืจ ืืื: ืืืื ืืืฆื ืขืจืืื ืืืจืืื ืืจื ืืชืืื ืืช, ืืืื ืืืืืื ืืฉืชื ืื ืืืืืื ืืงืืช, ืืื ืืฆืืืข ืขืฉืื ืืืืืช null ืืืชืจ ืงืจืืื ืืกืืื, ืืื ืืืืื ืืกืชืืืืช. ื ืืชืื AST ืืื ืืชืืืช ืชืื ืืืช. ืคืจืฉื ืืช ืืืคืฉืืช ืืื ืื ืืงื ืืชื ืืืืชืืช.
ืจืื ืืื ื-linter (ESLint, Checkstyle, Pylint) ืืืืกืกืื ืืขืืงืจ ืขื AST. ืจืื ืืื ืืืืืืช ืืคืืจืืืืื (Infer, Astrรฉe, Polyspace) ืืฉืชืืฉืื ืืคืจืฉื ืืช ืืืคืฉืืช. ื ืืชืื ืืื ืื (ืืจืฆืช ืืชืืื ืืช ืืชืฆืคืืช ืขื ืืชื ืืืืช ืืคืืขื) ืืืฆื ืจืง ืืืืื ืืืืคืขืืื ืขื ืืื ืงืืืื ืกืคืฆืืคืืื. ืคืจืฉื ืืช ืืืคืฉืืช ืืืฆืืช ืืืืื ืืื ืืงืืืื ืืืคืฉืจืืื ืืืื ืืืจืืฅ ืืช ืืชืืื ืืช ืืื.
ืืขืงืจืื ืืช ืืืชืืืืื ืืขืืืืื ืืืืืจื ื ืืชืื ืกืืื
ืืฉืืืืชื "ืืื ืืขืงืจืื ืืช ืืืชืืืืื ืืขืืืืื ืืืืืจื ืืื ื ืืชืื ืกืืื" ืืืคืืขื ืืฉืืจืืช ืื ืชืื ื ืืืืคืืฉ. ืื ื ืืชืฉืืื ืืคืฉืืื.
ืคืจืฉื ืืช ืืืคืฉืืช ื ืฉืขื ืช ืขื ืฉืืืฉื ืืื ืื ืืชืืืืื:
ืกืจืืืื. ืกืจืื ืืื ืงืืืฆื ืืกืืืจืช ืืืงืืช ืฉืื ืืื ืืื ืืืืจืื ืืฉ ืืืื ืขืืืื ืงืื (ืืืืืจ) ืืืืื ืชืืชืื ืืืื (ืืคืืฉ). ืื ืืชืื ืกืืื, ืืกืจืื ืืืืฆื ืืช ืืชืืื ืืืืคืฉื, ืงืืืฆืช ืืขืจืืื ืืืืคืฉืืื ืืืคืฉืจืืื, ืืืกืืืจืื ืืคื ืืืืช ืืืืืข ืฉืื ื ืืฉืืื. ืขืืืจ ื ืืชืื ืกืืื ืื, ืืกืจืื ื ืจืื ืื:
โค (unknown -- could be anything)
/ \
pos neg
\ /
0
|
โฅ (unreachable -- no possible value)
ืขืืืื ืืืขืื ืืกืจืื ืคืืจืืฉื ืืืืื ืืืืง (ืืืืขื ืคืืืช). ืืจืืื ืืื ืคืืจืืฉื ืฉืืคืืจ ืืืืง (ืืืืขื ืืืชืจ). ืืืืื ื ืืขืืืื โค ืคืืจืืฉื "ืื ืื ื ืื ืืืืขืื ืฉืื ืืืจ ืืืขืื". ืืืืื ื ืืชืืชืื โฅ ืคืืจืืฉื "ืืฆื ืื ืืื ื ื ืืชื ืืืฉืื".
ืงืฉืจื ืืืืื. ืงืฉืจ ืืืืื ืืื ืืงืฉืจ ืืคืืจืืื ืืื ืืชืืื ืืงืื ืงืจืื (ืขืจืื ืืชืืื ืืช ืืคืืขื) ืืชืืื ืืืืคืฉื (ืืืืฆืื ืืคืฉืื). ืืื ืืืจืื ืืฉืชื ืคืื ืงืฆืืืช: ืคืื ืงืฆืืืช ืืคืฉืื ฮฑ ืืืืคื ืขืจืืื ืงืื ืงืจืืืื ืืืืฆืื ืืืืคืฉื ืฉืืื, ืืคืื ืงืฆืืืช ืงืื ืงืจืืืืฆืื ฮณ ืืืืคื ืขืจืืื ืืืคืฉืืื ืืืืจื ืืงืืืฆืช ืืขืจืืื ืืงืื ืงืจืืืื ืฉืื ืืืืฆืืื.
ืืืืคืืื ืืงืจืืื: ืืชืืื ืืืืคืฉื ืืืื ืืืืืช ืงืืจืื ืืชืจ ืืืื. ฮณ(ฮฑ(S)) โ S ืขืืืจ ืื ืงืืืฆื ืงืื ืงืจืืืช S. ืืืคืฉืื ืขืฉืืื ืืืืื ืืืชืจ ืขืจืืื ืืื ืฉืืชืจืืฉ ืืคืืขื, ืืื ืื ืฉืืืฆืจ ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช, ืื ืืกืืจ ืื ืืฃ ืคืขื ืื ืืฉืืื ืขืจืืื ืฉืืชืจืืฉืื ืืคืืขื. ืื ืืืืืช ืขืจืืื ืืืืชืืื ืคืืจืืฉื ืืืืฆืช ืืืืื ืืืืชืืื.
ืืืืจืฆืื ืื ืงืืื ืงืืืขื. ืขืืืจ ืชืืื ืืืช ืขื ืืืืืืช, ืื ืืชืื ืืืื ืืืืืจ ืขื ืขืฆืื ืขื ืฉืืื ืืืืข ืืืฆื ืืฆืื. ืขืืืจ ืืืืื ืืื:
c
int x = 0;
while (condition) {
x = x + 1;
}
ืืืืืจืฆืื ืืจืืฉืื ื, x is {0}ืืืจื ืืืฃ ืืืืื ืืื, x ืืืื ืืืืืช {0, 1}ืืืจื ืฉืชืืื, {0, 1, 2}ืงืืืฆื ืื ืืืฉืืื ืืืืื, ืืื ืืขืืื ืื ืืชืืืฆืืช ืืขืฆืื. ืืคืชืจืื ืืื ืึดืชืจึทืึฒืืึผืชืืืคืจืืืจ ืฉืืืคื ืืชืื ืกืืช ืขื ืืื ืงืคืืฆื ืืงืืจืื ืจืื ืืืชืจ (ืืืจื ืืื [0, +โ) (ืื ืืชืื ืืจืืืืื). ืืืืจ ืืื ืื ืืชืื ืืฉืชืืฉ ืึฒืฆึธืจึธื ืืื ืืฉืืืจ ืงืฆืช ืืืืง.
ืืืฉืื ื ืงืืื ืงืืืขื ืื ืืื ืื ืฉืืืคื ืืช ืืคืจืฉื ืืช ืืืืคืฉืืช ืืฉืืื ืืื ื ืชืืื ืืืืฆืืข, ืืืื ืืืืืืช, ืืื ืฉืืืคื ืืืชื ืืืงืจื ืืืชืจ ืืืืื ื ืืืฉืืืืช ืืืฉืจ ืืชืืืช ืชืื ืืืช ืคืฉืืื.
ืชืืืืื ืืืคืฉืืื: ืืืืจืช ืื ืืงืจื
ืืชืืื ืืืืคืฉื ืงืืืข ืื ืื ืืชืื ืืืื ืืืฆืื ืืื ืื. ืชืืืืื ืฉืื ืื ืขืื ืื ืขื ืฉืืืืช ืฉืื ืืช ืืืื ืืชื ืืืืช ืืชืืื ืืช.
| ืชืืื ืืืคืฉื | ืื ืื ืขืืงื | ืืืืื ืืฉืืืืฉ | ืื ืื ืืคืกืคืก |
|---|---|---|---|
| ื ืืชืื ืกืืื ืื | ืืื ืืขืจืืื ืืืืืืื, ืฉืืืืืื ืื ืืคืก | ืืืืืง ืืืคืก ืืืืื | ืขืจืืื ืืืืืงืื, ืชื ืื ืืืืฉื |
| ื ืืชืื ืืจืืืืื | ืืืืืืช ืขืืืื ืื ืืชืืชืื ืื ืฉื ืขืจืืื ืืกืคืจืืื | ืืืืฉืช ืืืืจ, ืืืืืืช ืืืฉื ืืืขืจื | ืงืฉืจืื ืืื ืืฉืชื ืื |
| ืชืืื ืืืงืืืื | ืงืฉืจืื ืืื ืืืจืืื ืืื ืืืืืช ืืฉืชื ืื | ืืืืื ืืืืฉื ืืืืืง ืืืชืจ | ืงืฉืจืื ืื ืืื ืืืจืืื |
| ื ืืชืื ืืฆืืืข | ืืื ืืืฆืืืขืื ืืืืืื ืืืืืช ืจืืง ืื ืืืืืช ืืื ืืืื ืื ืืื | ืืืืื ืืคื ืื ืืคืก, ืฉืืืืฉ ืืืืจ ืฉืืจืืจ | ืืืจื ืืืื ืฉื ืืืืืืงื, ืฆืืจืช ืขืจืืื |
| ื ืืชืื ืืชืืื | ืืื ืขืจืืื ืืืืขืื ืืืงืืจืืช ืื ืืืืื ืื | ืืืจืงืช SQL, ืืืืื XSS | ืืจืืืืช ืืจืืืืืช ืืจื ืืงืจื |
| ืชืืื ืคืืืืืืจืื | ืืืืืฆื ืืจืืชืืืืงื ืืื ืืืจืืื ืฉืจืืจืืชืืื | ืืืืืช ืืืืืื | ืขืืืช ืืืืฆืืขืื ืืฉืชื ื ืืืืคื ืืงืกืคืื ื ืฆืืืื |
ืืคืฉืจื ืืื ืชืืืืื ืืื ืชืืื ืืืืง ืืขืืืช ืืืฆืืขืื. ืชืืื ืืืื ืืจืืื ืืื ืืืืจ ืืชืืคืก ืืช ืจืื ืืืืืื ืืืกืคืจืืื. ืชืืื ืืคืืืืืืจืื ืืืืืง ืืจืื ืืืชืจ ืื ืืขื ืืืจืืืืช ืืงืกืคืื ื ืฆืืืืืช ืืืกืคืจ ืืืฉืชื ืื. ืืื ื ืืชืื ืกืืื ืืขืฉืืื ืืืืจืื ืชืืืืื ืืืืื ืื ืืช ืืคืฉืจื ืขืืืจ ืืืฉืื ืืืขื ืฉืืื, ืืขืจืืืช ืืฉืืืฆืืช ืงืจืืืืืช ืืืืืืืช ืืืืืืช ืืืจืฉืืช ืืขืฆืื ื ืืชืื ืืืื ืืืืืืง ืืืชืจ; ืืขืจืืืช ืืฉืืืฆืืช ืืฉืืืืืช CI/CD ืฆืจืืืืช ืืืกืชืืื ืชืื ืฉื ืืืช.
ืืืฆื ืฉืืืฉื ืืืื ืืืืชืืื ืืฉืชืืฉืื ืืคืจืฉื ืืช ืืืคืฉืืช
ืืืงืื ืืชืืจ ืืช ืืชืืืืจืื ืืคื ื ืขืฆืื, ืืืื ืงืื ืงืจืืืื ืืืืืจืื ืืช ืืืฉืืื.
Facebook Infer ืืฉืชืืฉ ืืฆืืจื ืฉื ืคืจืฉื ืืช ืืืคืฉืืช ืื ืงืจืืช bi-abduction ืืื ืื ืชื ืืช Java, C, C++ ื-Objective-C ืขืืืจ ื ืืชืืง ืืฆืืืขื null, ืืืืคืืช ืืฉืืืื ืืชื ืื ืืจืืฅ. Bi-abduction ืืืื ืืืืคื ืืืืืืื ืชื ืืื ืืืงืืืื ืืชื ืื ืคืืกื ืขืืืจ ืคืื ืงืฆืืืช, ืืืืคืฉืจ ื ืืชืื ืืื-ืคืจืืฆืืืจื ืืื ืฆืืจื ืืืคืจืืื ืืื ืืื. Infer ืคืืขื ื-CI ืืคืืืกืืืง, ืกืคืืืืคืื, ืืืืืื ืืขืฉืจืืช ืืจืืื ืื ืืืืืื ืืืจืื ืืืืืื ืฉืืื ื ืืชื ืืืจืืื ืืืกืืกื ืงืื ืฉื ืืืืืื ื ืฉืืจืืช ืชืื ืฉืืืจื ืขื ืชืงืื ืืช ืขืืืจ ืกืืื ืืฉืืืืืช ืฉืืื ืืืืง.
Astrรฉe ืืฉืชืืฉืช ืืคืจืฉื ืืช ืืืคืฉืืช ืขื ืชืืืืื ืืืคืฉืืื ืืกืคืจืืื ืืื ืืืืืื ืืช ืืืขืืจ ืฉืืืืืช ืืื ืจืืฆื ืืชืืื ืืืช C. ืืื ืฉืืืฉื ืืช ืืืืจืืืก ืืืืืืช ืจืฉืื ืฉื ืชืืื ืช ืืงืจืช ืืืืกื ืืขืืงืจืืช ืฉื ื-A380, ืืืืืืื ืืืขืืจ ืฉืืืืืช ืืื ืจืืฆื ืืื ืืขืจืืช ืืืงืจื, ืขืจืืื ืฉืืฃ ืชืืื ืืช ืืืืงื ืื ืืืื ืืกืคืง. Astrรฉ ืืืฆืืช ืืคืก ืชืืฆืืืช ืฉืืืืืืช ืฉืืืืืช ืขืืืจ ืกืืื ืืฉืืืืืช ืฉืืื ืืืืงืช, ืื ืื ืืื ืขืฉืืื ืืืืฆืจ ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช ืืืืจืฉืืช ืกืงืืจื ืืื ืืช.
Polyspace (MathWorks) ืืืืฉืืช ืคืจืฉื ืืช ืืืคืฉืืช ืขืืืจ ืงืื C ื-C++ ืืืืืข ืืืืฉืืืื ืงืจืืืืื ืืืืืืืช. ืืื ืืกืืืืช ืื ืคืขืืื ื"ืืจืืง" (ื ืืชื ืืืืืื ืฉืืื ืฉืืืื), "ืืืื" (ืืืืื ืฉืืืื) ืื "ืืชืื" (ืฉืืืื ืคืืื ืฆืืืืืช ืืืืจืฉืช ืกืงืืจื). ืืกืืืื ืืืจืืง ืืื ืืืืื ืคืืจืืืืช: ืฉืื ืืืฆืืข ืื ืืืื ืืืจืื ืืฉืืืืช ืืื ืจืืฆื ืืืืชื ืคืขืืื.
ืืฉืืืฉ ืชืงืื ืืช-ืืืืง-ืืืฆืืขืื
ืืื ืคืจืฉื ืืช ืืืคืฉืืช ืื ืืืืื ืืืฉืืืฉ ืืกืืกื ืฉื ืชืืื ืืช ืืชืืจืืช. ืืฃ ืืื ืืื ื ืืืื ืืืงืกื ืืช ืฉืืืฉืชื ืื ืืื ืืช.
ืชืงืื ืืช ืคืืจืืฉื ืืืขืืจ ืชืืฆืืืช ืฉืืืืืืช ืฉืืืืืช: ืื ืืื ืืืืชื ืืืืืงื ืืื ืืชืืช ืืืืื. ืืืื ืชืงืื ืื ืืกืคืงืื ืขืจืืืืืช; ืืืื ืฉืืื ื ืชืงืื ืื ืืืืืื ืืคืกืคืก ืืืืื.
ืืืืง ืคืืจืืฉื ืืขื ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช: ืืืฆืืื ืชืืืืื ืืืขืืืช ืืืืชืืืช ืืื ืืืขืืืช ืชืืืืจืืืืช ืฉืื ืืืืืืช ืืืชืจืืฉ. ืืืืง ืืืื ืืืจืฉ ืชืืืืื ืืืคืฉืืื ืืขืืื ืื ืืืชืจ ืื ืืชืื ืืื-ืคืจืืฆืืืจืื.
ืืืฆืืขืื ืคืืจืืฉื ืฉืื ืืชืื ืืกืชืืื ืืืื ืฉืืืืฉื. ื ืืชืื ืืืืืง ืืืชืจ ืืงืจ ืืืชืจ. ืืืืืช ืืืขืืจ ืื ืฉืืืืืช ืืื ืืจืืฆื ืืืกืืก ืงืื ืฉื ืืืืืื ืฉืืจืืช ืืืจืืช ืฉืขืืช; ืกืจืืงืช ืืื ืืจ ืืืจืืช ืฉื ืืืช.
ืืืฉืืืื ืฉืื ืื ืืืจืฉืื ื ืงืืืืช ืฉืื ืืช ืืืฉืืืฉ ืื:
- ืืื IDE ื-CI/CDืืืฆืืขืื ืจืืฉืื ืื, ืืืืง ืฉื ื, ืชืงืื ืืช ืืืคืฆืืื ืืืช
- ืกืจืืงืช ืืืืืืืืืง ืงืืื ืื (ืืคืืชืช ืขืืืคืืช ืขืจื ืืช ืืืคืชื), ืชืงืื ืืช ืืฉืืื ืขืืืจ ืงืืืืจืืืช ืืืืจื ืืืืืืช
- ืืกืืื ืงืจืืืืช ืืืืืืืชืชืงืื ืืช ืชืืืื (ืื ื ืืชื ืืคืกืคืก ืืืืื ืืืืชืืื), ืืืฆืืขืื ืืฉื ืืื, ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช ืืงืืืืืช ืืชืืืื ืืืืงื ืืื ื
ืคืจืฉื ืืช ืืืคืฉืืช ืืคืืชืื ืืฉืืืฅ ืืืืืืืช-ืงืจืืื
ืืฉืืื "ืืชืจืื ืืช ืื ืืชืื ืืกืืื ืืคืืชืื ืืฉืืืฅ" ืืฆืืืขื ืขื ืืื ืืชืืืื ืืืืฉืื ืืืฉืืืื ืืืืชืจ ืฉื ืคืจืฉื ืืช ืืืคืฉืืช. ืืืขืจืืืช ืืฉืืืฆืืช, ืืืืืืช ืืงืจื ืืจืื, ืงืืฉืื ืฉื ืืืฉืืจืื ืจืคืืืืื ืืชืืื ืืช ืืงืจืช ืืืกืืช ืืืื, ืืฉ ืืืืืฆืื ืฉืืืคืืื ืืช ืืคืจืฉื ืืช ืืืืคืฉืืช ืืืงืจื ืืืืืื:
ืืื ืจืชืืช ืืืืงื ืืื ืืืฆืืื. ืืืืืช ืืงืจื ืืืงืืจืื ืืช (ECU) ืฉื ืจืื ืืืื ืืืืคื ืฆืืจืืคื ืืืืฉื ืื ืืืื ืืืช. ืื ืืืช ืืืืงืืช ืืื ืฉืืืื ืืื ืืืชื ืืคืฉืจืืช. ืคืจืฉื ืืช ืืืคืฉืืช ืืืกื ืืช ืื ืืืฆืืื ืื ืืื ืืช.
ืืจืืฉืืช ืืกืืื. DO-178C (ืชืขืฉืืืช ืืชืขืืคื ืืืื), ISO 26262 (ืชืขืฉืืืช ืืจืื) ื-IEC 62443 (ืชืขืฉืืืช ืืืงืจื) ืืืจืฉืื ืืืืื ืฉืชืืื ื ืคืืขืืช ืืจืืื ืืื ืืชื ืืื. ืืืืืช ืคืืจืืื ืืืืฆืขืืช ืคืจืฉื ืืช ืืืคืฉืืช ืืืื ืืขืืื ืืืจืืฉื ืื ืืืืคื ืฉืืืืืช ืืืกืื ืืืืงืืช ืืื ื ืืืืืื.
ืืืืืฆื ืืฉืืืื. ืืชืืื ื ืืฉืืืฆืช ืืจืื ืืื ืืงืฆื ืืืืจืื, ืืื ืืืคืื ืืืจืืืื ืืืื ืืืืื ืฉื ืืขืจืืช ืืคืขืื. ืฉืืืืช ืืื ืจืืฆื, ืืืืื ืืคื ืื ืฉื ืืฆืืืข ืจืืง, ืืขืจื ืืืืฅ ืืชืืื, ืื ืืฉื ืืขืจืืช ืงืฉืื. ืืขืืืช ืฉื ืคืกืคืืก ืืืืื ืืื ืืื ื ืืื ืงืจืืกื ืืชืืงืื ืื. ืืืื ืชืงืจืืช ืืืืืืช.
ืื ืชืื Astrรฉe ื-Polyspace ืงืืืืื ืืืืืื ืขืืืจ ืืืงืฉืจ ืืื. ืืชืื ืื ืฉืืื ืืงืื ืฉืืขืืจื ืืืืืืื ืืืืืื ืืืืืื ืื ืืชืื ืืืื ืืชืืืจื ืืขืจืืืช ืฉืื ืืืืืื ืืจืื ืชืืฆืืืช ืฉืืืืืืช ืืืืืืช.
ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช ืืืืขืื ืืืชืจืืืช
ืืืืงืืจืช ืื ืคืืฆื ืืืืชืจ ืขื ืืื ืคืจืฉื ืืช ืืืคืฉืืช ืืื ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช, ืืืืจืืช ืืคื ื ืฉืืืืืช ืคืืื ืฆืืืืืืช ืฉืื ืืืืืืช ืืืชืจืืฉ ืืคืืขื ืืืืฆืืข ืืืืชื. ืืื ืช ืืกืืื ืืื ืฉืชืืฆืืืช ืืืืืืืช ืฉืืืืืช ืื ืืื ืืจื ืืืืช, ืืื ืืืงืื ืืืืืช, ืืงืื ืขื ื ืืืืื.
ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช ื ืืืขืืช ืืฉื ื ืืงืืจืืช:
ืงืืจืื ืืชืจ ืืชืืื ืืืืคืฉื. ืื ืชืืื ืืืจืืืืื ืขืืงื x โ [0, 100], ืืื ืืื ื ืืืื ืืืืืื ืืื ืืงืจืื ืฉืืื x ืชืืื ืงืื ื-50 ืืคืืขื. ืืืืืง ื- x ืขืฉืื ืืืืืช ืืกืืื ืืืืืืง ืืืคืก ืื ืืืฉืจ ืืืืืงืช ืืชืืื ืืช ืืืืืื x > 0ืืืืืื ืืืืืง ืืืชืจ (ืืขืงื ืืืจ ืืขืจื ืืืืืืง, ืื ืงืืฉืืจ ืืืืืฆืื) x ืืืฉืชื ื ืืืจ) ืืืื ืืช ืืืืืื ืืฉืืื, ืื ืืขืืืช ืืืฉืืืืช ืืืืื ืืืชืจ.
ืึดืชืจึทืึฒืืึผืช. ืืืคืจืืืจ ืืืชืื ืกืืช ืฉืืืคื ืืช ื ืืชืื ืืืืืื ืื ืืชื ืืืืฆืืข ืืืืจื ืืืื ืืืืข ืืืืจ ืืืชืจืืืืช. x ืืื ื- [0, 5] ื [0, +โ)ืืื ืชื ืืืจ ืื ืืืืข ืืช ืื x ื ืฉืืจ ืืืืื. ืื ืืงืื ืืืืง assert(x < 1000) ืืืืจ ืืืืืื, ืืขื ื ืื ืืื ื ื ืืชื ืช ืืืืืื ืขืื, ืื ืื ืืคืืขื x ืชืืื ื ืฉืืจ ืืจืื ืืชืืช ื-1000.
ืืกืืจืืืืืช ืืขืฉืืืช ืื ืืืื ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช: ืืืืจืช ืื ืืชืื ืืฉืืืืฉ ืืชืืืืื ืืืืืงืื ืืืชืจ ืขืืืจ ืืืืืืื ืงืจืืืืื (ืชืื ืงืืืช ื ืืชืื ืืืื ืืืชืจ), ืืืืื ืชืืฆืืืช ืืืืืืืช ืฉืืืืืช ืฉืืืฉืจื ืืืืฆืขืืช ืืขืจืืช ืืืืงืืืช, ืืืชืืืืกืืช ืืืืฆืืื ืืืชืืืื/ืื ืืืืขืื ืฉื ืืืื ืืชืืจ ืกืงืืจื ืืขืืืคืืช ืขืืืื ื ืืื ืืืืืื ืฉืืืฉืจื.
ืืื SMART TS XL ืืืฉืื ื ืืชืื ืกืืื ืืงื ื ืืืื ืืจืืื ื
SMART TS XL ืคืืขื ืืืจืื ืฉืื ืชืืจืช ืืคืจืฉื ืืช ืืืืคืฉืืช ืคืืืฉืช ืืฆืืืืช ืืจืืื ืืช: ืืกืืกื ืงืื ืืืฉืชืจืขืื ืขื ืคื ื ืฉืคืืช ืืจืืืืช, ืขืฉืจืืช ืฉื ืื ืฉื ืคืืชืื ืืืืืืืช ืืจืืื ืืื ืฉืืืคืืื ืืืืืช ืคืืจืืื ืืคื ืชืืื ืืช ืืืืชื ืืขืฉื.
ืืืงืื ืืืืื ืชืืื ืืืคืฉื ืืืื ืขื ืื ืืชืืื ืืืช, SMART TS XL"S ื ืืชืื ืงืื ืกืืื ืืฉืืืช ืืื ืืงืืช ื ืืชืื ืืื ื ืืืชืืืืืช ืืื ืฉืคื ืืกืืืื, COBOL, JCL, Java, Python, RPG, PL/I, SQL ื-stack ืืืืจื ื, ืืืืืฆืจืช ืืืื ืืืืืช, ื ืชืื ื ืชืืืช ืืืืฆืื ืืืืื ืื ืืื ืืช ืขื ืคื ื ืื ืชืืง ืืขืืืืืช.
ืืืืืช ืืืคืื ืชืืืช ืืืืฉืืืื ืืืืฉืืช ื ืืชืื ืืจืคื-ืชืืืืจืื ืขื ืืจืฃ ืืงืจืืื ืืื-ืืฉืื ื, ืืืืื ืืืฆื ืชืืื ืืืช, ืืขืจืื ื ืชืื ืื ืืืจืื ืืฉืืืืช ืืชืืืจืื ืืื ืืืืืืช ืฉืคื, ืกืื ืฉื ื ืืชืื ืืขืจืืช ืฉืื ืฉืืืื ืืฉืคื ืืืช ืืื ื ืืืืืื ืืืฆืข. ืืืื ืืฉืืื ืืื ืืช ืืจืืช ืืืขืจืืช: ืื ืืืืืช ืชืืื ืืช ืฉื ืชืืื ืืืช ืืืืืืช ืืื ืืืืืช ืชืืื ืืช ืฉื ืืืคื ืืืืืืจ ืฉืืื.
ืืืืืช ื ืืชืื ืืืฉืคืขื ืืืืฉืืช ื ืืชืื ื ืืืฉืืช ืขื ืืื ืืจืฃ ืืชืืืช: ืืืื ืชื ืฉืื ืื ืืืฆืข ืืฆืืืช ืืื, ืืฉ ืืืฉื ืืช ืงืืืฆืช ืื ืืฆืืชืื ืฉื ืืชื ืืืืืข ืืืืื ืืื ื. ืืืื ืฉืืืช ืื ืืชืื ืืกืืื "ืื ืืืฉืคืข?", ืืฉืจ ื ืขื ืืช ืืืื ื ืืงืื ืืื ืืชืฆืคืืช ืืืื ืจืืฆื ืื ืืขืจืื ืื ืืฉืืช.
ืขืืืจ ืฆืืืชืื ืืื ืืืื ืืืืจื ืืืฆืื ืืืจืฉืช ืชืืื ืืืช, SMART TS XLืื ืืชืื ืืืื ื ืฉื [ืฉื ืืืืจ] ืกืืืจ ืืช ืืคืขืจ ืืื ืืื ืคืจืฉื ืืช ืืืคืฉืืื ืคืืจืืืืื (ืฉืื ืกืคืฆืืคืืื ืืฉืคื ืืืืจืฉืื ืืืืืืืช ืืชืืื ืืื ืืืืืืจ ืืืชื) ืืืื ืืฆืืจื ืืืขืฉื ืืืืื ืื ืืขืจืืืช ืืืืจ ืงืืื ืืืืืืช, ืื ืืชืืขืืืช ืืจื-ืืฉืื ืืืช ืขืืฉืืช ืืคืืขื, ืชื ืื ืืืจืื ืืื ืชืืื ืืช ืืืืจื ืืืฆืื ืฉืื ืจืืฆื ืืืืืช ืืช ืืืคืชืขืืช ืืืงืจืืช ืืืืชืจ ืฉืื ืืืืฆืข ืืืืฆืืข.
ืฉืืืืช ื ืคืืฆืืช
ืื ืืืืื ืืื ืคืจืฉื ืืช ืืืคืฉืืช ืืืืืงืช ืืืื? ืฉืชืืื ืฉืืืืช ืคืืจืืืืืช ืืืืืืช ืชืืื ืืืช. ืคืจืฉื ืืช ืืืคืฉืืช ืืงืจืืืช ืืชืจ ืขื ืืืืื ืืช ืงืืืฆืช ืืืฆืืื ืืืคืฉืจืืื (ืชืงืื ืื ืขืืื ืืืืืช ืื ืืืืืง). ืืืืงืช ืืืื ืืืงืจืช ืืืืคื ืืืฆื ืืช ืืจืื ืืืฆืืื (ืฉืื ืื ืืคืฉืจื ืจืง ืขืืืจ ืืขืจืืืช ืกืืคืืืช ืืืืืืืืช). ืคืจืฉื ืืช ืืืคืฉืืช ืืชืืืื ืืชืืื ืืืช ืืืืืืช. ืืืืงืช ืืืื ืืชืืืื ืืชืืื ืืช ืืืจืืืืช ืขื ืืืืืื ืงืื ืื ืืืชืจ. ืื ืืฉืืืืืช, ืื ืืชืืจืืช.
ืืื ืคืืจืืฉ ืืืคืฉื ืืืืขื ืจืง ืืชืืื ื ืงืจืืืืช ืืืืืืืช? ืื, ืืืจืืช ืฉืืื ืืกืคืง ืืช ืืขืจื ืืืจืืจ ืืืืชืจ ืฉืื ืฉื. Infer ืจืฅ ืืฆืื ืืจืืช CI/CD ืกืื ืืจืืืื ืืืืจืืช ืืื ืืืืืื ืืืืืืช, ืืืฆื ืืคื ืืืช ืืืฆืืืขื null ืืืืืคืืช ืืฉืืืื ืืงืื Java ื-C ืืืืืืื. ืืืืช ืืงืคืื ืืช ืืืืืฉืืช ืืื ืืืืจื: ืชืงืื ืืช ืืืื ืขื ืขืจืืืืืช ืคืืจืืืืืช ืืงืฆื ืืื, ื ืืชืื ืืืืจืืกืื ืงื ืืฉืงื ืืงืฆื ืืฉื ื, ืืืฉืจ ืจืื ืืืืื ืืืขืฉืืื ื ืืฆืืื ืืืคืฉืื ืืืืฆืข.
ืืื ืคืืจืืฉ ืืืคืฉื ืืืื ืื ืชื COBOL? ืคืืจืืฉ ืืืคืฉื ืืื ืืื ืืกืื ืืฉืคื ืืชืืืืจืื. ืืืฉืืื ืขื COBOL ืืืจืฉ ืืืฉืื ืฉื ืคืื ืงืฆืืืช ืืขืืจื ืืืคืฉืืืช ืขืืืจ ืคืขืืืืช COBOL, ืืจืืชืืืืงื ืฉื ืฉืืืช PIC, ืคืกืงืืืช REDEFINES, ืฉืืืช ืชื ืืื ืืจืื 88 ืืื ืืืื. ืืื ืคืืจืืฉ ืืืคืฉืืื ืืืืจืืช ืืืืืืช (Infer, Astrรฉe) ืืื ื ืชืืืืื ื-COBOL. ืคืืืคืืจืืืช ื ืืชืื ืืื ื ืืจืืื ืืืช ืฉืืืื ืืช COBOL ืืืืฉืืืช ืืืืคื ืืืขื ืืื ืืงืืช ื ืืชืื ืกืืื ืงืฉืืจืืช ืืื ืืืฆืื ืืขืืืช ืืืืืช, ืงืื ืืช ืืืขืืืช ืืจืืืืงืืื ืืืช ืืืกืืกื ืงืื COBOL.


