ืคืจืฉื ื•ืช ืžื•ืคืฉื˜ืช ื‘ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™

ืคื™ืจื•ืฉ ืžื•ืคืฉื˜ ืžื•ืกื‘ืจ: ืžืชื•ืจืช ื”ืกืจื™ื’ ื•ืขื“ ืœื”ืกืงื” ื•ืืกื˜ืจื”

ืงื—ื• ื‘ื—ืฉื‘ื•ืŸ ืฉืชื™ ืชื•ื›ื ื™ื•ืช ืฉืขื•ื‘ืจื•ืช ืฉืชื™ื”ืŸ ื›ืœ ื‘ื“ื™ืงื” ืฉืืชื ื›ื•ืชื‘ื™ื. ืื—ืช ื ื›ื•ื ื”. ืœืฉื ื™ื™ื” ื™ืฉ ืฉื’ื™ืืช ื—ื™ืœื•ืง ื‘ืืคืก ืฉืžื•ืคืขืœืช ืจืง ื›ืืฉืจ ืฉื™ืœื•ื‘ ืžืกื•ื™ื ืฉืœ ืงืœื˜ื™ื ืžื’ื™ืข ื‘ื• ื–ืžื ื™ืช, ืฉื™ืœื•ื‘ ืฉื”ื‘ื“ื™ืงื•ืช ืฉืœื›ื ืœืขื•ืœื ืœื ืžื™ื™ืฆืจื•ืช. ื‘ื“ื™ืงื•ืช ืžืกื•ืจืชื™ื•ืช ืื™ื ืŸ ื™ื›ื•ืœื•ืช ืœื•ืžืจ ืœื›ื ืื™ื–ื• ืžื”ืŸ ื”ื™ื ืื™ื–ื•. ืคืจืฉื ื•ืช ืžื•ืคืฉื˜ืช ื›ืŸ.

ืคืจืฉื ื•ืช ืžื•ืคืฉื˜ืช ื”ื™ื ื”ืžืกื’ืจืช ื”ืžืชืžื˜ื™ืช ื”ืžืขื ื™ืงื” ืœื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืืช ื”ื™ื›ื•ืœืช ืœื—ืฉื•ื‘ ืขืœ ื›ืœ ื”ื”ืชื ื”ื’ื•ื™ื•ืช ื”ืืคืฉืจื™ื•ืช ืฉืœ ืชื•ื›ื ื™ืช ืžื‘ืœื™ ืœื”ืจื™ืฅ ืื•ืชื”. ื–ื•ื”ื™ ื”ื˜ื›ื ื™ืงื” ื”ืขื•ืžื“ืช ืžืื—ื•ืจื™ ื”-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.