ื ื™ื• ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืžืึทืฉ

ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื™ืึธืจืŸ ืื™ืš ื’ืขืคืจื•ื•ื•ื˜ ืžื™ื™ืŸ ื”ืึทื ื˜ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš. ืื™ืš ื’ืขื•ื•ืืœื˜ ืฆื• ืžืึทื›ืŸ, ืื™ืŸ ืžื™ื™ืŸ ืžื™ื™ื ื•ื ื’, ื“ื™ ืžืขืจืกื˜ ืคึผืฉื•ื˜, ื’ืึธืจ ืคืึทื ื’ืงืฉืึทื ืึทืœ ืื•ืŸ ื‘ืึทืงื•ื•ืขื ืฉืคึผืจืึทืš ืžืขื’ืœืขืš.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื”ื•ื™ื›ืคึผื•ื ืงื˜ ื“ื™ ื”ื•ื™ืคึผื˜ ืกื˜ืึทื’ืขืก ืคื•ืŸ ืžื™ื™ืŸ ืึทืจื‘ืขื˜ ืื•ืŸ, ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜, ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืืฉืืคืŸ ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ื“ืขืจ ืฉืคึผืจืึทืš ืื•ืŸ ื–ื™ื™ึทืŸ ืขืจืฉื˜ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ื•ื•ืึธืก ืื™ืš ืึทืจื‘ืขื˜ ืื™ืฆื˜.

ืœืื– ืžื™ืจ ืคืืจื•ื™ืก ื–ืื’ืŸ ืื– ืื™ืš ื”ืื‘ ื’ืขืฉืจื™ื‘ืŸ ื“ืขื ื’ืื ืฆืŸ ืคืจืื™ืขืงื˜ ืื™ืŸ ืคืจื™ื™ ืคืืกืงืืœ, ื•ื•ื™ื™ืœ... ืžื’ื™ืœื” ืื•ื™ืฃ ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคืืจื–ืืžืœื˜ ืคึฟืึทืจ ืึท ืจื™ื–ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ืคึผืœืึทื˜ืคืึธืจืžืก, ืื•ืŸ ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ื–ื™ืš ื˜ืจืื’ื˜ ื–ื™ื™ืขืจ ืึธืคึผื˜ื™ืžื™ื–ืขื“ ื‘ื™ื ืึทืจื™ืขืก (ืื™ืš ืงืœื™ื™ึทื‘ืŸ ืึทืœืข ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื“ื™ ืึธ2 ืคืึธืŸ).

ืฉืคึผืจืึทืš ืจื•ื ื˜ื™ืžืข

ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืขืก ืื™ื– ื•ื•ืขืจื˜ ืฆื• ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ื•ื•ืึธืก ืื™ืš ื’ืขื”ืื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืฆื• ืœื•ื™ืคืŸ ืฆื•ืงื•ื ืคึฟื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ืžื™ื™ืŸ ืฉืคึผืจืึทืš. ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ืึธื ืœื™ื™ื’ืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ื˜ืึธืžืขืจ, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ื™ื–ื™ืึทืกื˜ ื•ื•ืขื’. ืื™ืš ื”ืื‘ ื ื™ืฉื˜ ื’ืขืคื•ื ืขืŸ ืงื™ื™ืŸ ืื™ื™ืŸ ื ืืจืžืืœืขืจ ืืจื˜ื™ืงืœ ื•ื•ื™ืื–ื•ื™ ื“ืืก ืฆื• ื˜ื•ื”ืŸ ืื•ื™ืฃ ืจื•ืกื™ืฉ, ืื•ืŸ ื ืื›ื“ืขื ื•ื•ืืก ืื™ืš ื”ืื‘ ื–ื™ืš ื‘ืืงืขื ืขืŸ ืžื™ื˜ ื“ืขื ืขื ื’ืœื™ืฉ-ืฉืคืจืื›ืŸ ืžืื˜ืขืจื™ืืœ, ื”ืื‘ ืื™ืš ื–ื™ืš ืื•ื•ืขืงื’ืขื–ืขืฆื˜ ืฆื• ื“ื™ื–ื™ื™ืŸ ืื•ืŸ ืฉืจื™ื™ื‘ืŸ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข ื•ื•ืขืœืึธืกื™ืคึผืขื“. ื•ื•ื™ื™ึทื˜ืขืจ ืื™ืš ื•ื•ืขื˜ ืคืึธืจืฉื˜ืขืœืŸ ืžื™ื™ืŸ "ืึทื•ื•ืึทื ืกื™ืจื˜ืข" ื’ืขื“ืื ืงืขืŸ ืื•ืŸ ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ืื™ืŸ ื“ืขื ืขื ื™ืŸ.

ืึธื ืœื™ื™ื’ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ

ื“ืึธืš, ืื™ืŸ ื“ื™ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ VM ืื™ื– ื“ืขืจ ืึธื ืœื™ื™ื’ืŸ. ืื™ืŸ ืžื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืขืก ืึทืจื‘ืขื˜ ืื™ืŸ ื‘ืœืึทืงืก. ื™ืกืขื ืฉืึทืœื™, ื“ืึธืก ืื™ื– ืึท ืคึผืฉื•ื˜ ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืคึผื•ื™ื ื˜ืขืจื– ืื•ืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืฆื• ืงืจืึธื ื“ื™ ืื™ื ื“ืขืงืก ืคื•ืŸ ื“ื™ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ืึธื ืœื™ื™ื’ืŸ.
ะŸั€ะธ ะตะณะพ ะธะฝะธั†ะธะฐะปะธะทะฐั†ะธะธ, ัะพะทะดะฐะตั‚ัั ะผะฐััะธะฒ ะฝะฐ 256 ัะปะตะผะตะฝั‚ะพะฒ. ะ•ัะปะธ ะฒ ัั‚ะตะบ ะทะฐะบะธะดั‹ะฒะฐะตั‚ัั ะฑะพะปัŒัˆะตะต ั‡ะธัะปะพ ัƒะบะฐะทะฐั‚ะตะปะตะน, ั‚ะพ ะตะณะพ ั€ะฐะทะผะตั€ ัƒะฒะตะปะธั‡ะธะฒะฐะตั‚ัั ะฝะฐ ัะปะตะดัƒัŽั‰ะธะต 256 ัะปะตะผะตะฝั‚ะพะฒ. ะกะพะพั‚ะฒะตั‚ัั‚ะฒะตะฝะฝะพ, ะฟั€ะธ ัƒะดะฐะปะตะฝะธะธ ัะปะตะผะตะฝั‚ะพะฒ ะธะท ัั‚ะตะบะฐ โ€” ะตะณะพ ั€ะฐะทะผะตั€ ั€ะตะณัƒะปะธั€ัƒะตั‚ัั.

ื“ื™ VM ื ื™ืฆื˜ ืขื˜ืœืขื›ืข ืกื˜ืึทืงืก:

  1. ื”ื•ื™ืคึผื˜ ืึธื ืœื™ื™ื’ืŸ.
  2. ื ืึธื ืœื™ื™ื’ืŸ ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืคื•ื ืงื˜ืŸ.
  3. ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ ืึธื ืœื™ื™ื’ืŸ.
  4. ืคึผืจื•ึผื•ื•ื˜ / ื›ืึทืคึผืŸ / ืœืขืกืึธืฃ ืคืึทืจืฉืคึผืึทืจืŸ ื”ืึทื ื“ืœืขืจ ืึธื ืœื™ื™ื’ืŸ.

ะšะพะฝัั‚ะฐะฝั‚ั‹ ะธ ะฟะตั€ะตะผะตะฝะฝั‹ะต

ื“ืึธืก ืื™ื– ืคึผืฉื•ื˜. ืงืึทื ืกื˜ืึทื ืฅ ื–ืขื ืขืŸ ื›ืึทื ื“ืึทืœื“ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงืœื™ื™ืŸ ืฉื˜ื™ืง ืคื•ืŸ ืงืึธื“ ืื•ืŸ ื–ืขื ืขืŸ ื‘ื ื™ืžืฆื ืื™ืŸ ืฆื•ืงื•ื ืคึฟื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื“ื•ืจืš ืกื˜ืึทื˜ื™ืง ื•ื•ืขื ื“ื˜. ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ืึท ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹ืคึผื•ื™ื ื˜ืขืจื– ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ื’ืจื™ื™ืก, ืึทืงืกืขืก ืฆื• ื–ื™ื™ึทืŸ ืกืขืœื– ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื“ื•ืจืš ืื™ื ื“ืขืงืก - ื™.ืข. ืกื˜ืึทื˜ื™ืง ืึทื“ืจืขืก. ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคึผื•ืฉื˜ ืฆื• ื“ื™ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ืึธื ืœื™ื™ื’ืŸ ืึธื“ืขืจ ืœื™ื™ืขื ืขืŸ ืคึฟื•ืŸ ื“ืึธืจื˜. ืึทืงื˜ื•ืึทืœืœื™, ื•ื•ื™ื™ึทืœ ื›ืึธื˜ืฉ ืื•ื ื“ื–ืขืจ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื™ืกืขื ืฉืึทืœื™ ืงืจืึธื ืคึผื•ื™ื ื˜ืขืจื– ืฆื• ื•ื•ืึทืœื•ืขืก ืื™ืŸ VM ื–ื›ึผืจื•ืŸ, ื“ื™ ืฉืคึผืจืึทืš ืื™ื– ื“ืึทืžืึทื ื™ื™ื˜ืึทื“ ื“ื•ืจืš ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื™ืžืคึผืœื™ืกืึทื˜ ืคึผื•ื™ื ื˜ืขืจื–.

ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ

ืื™ืŸ ืžื™ื™ืŸ VM ืขืก ืื™ื– ื”ืึทืœื‘-ืึธื˜ืึทืžืึทื˜ื™ืง. ื™ืขื ืข. ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื–ื™ืš ื“ื™ืกื™ื™ื“ื– ื•ื•ืขืŸ ืฆื• ืจื•ืคืŸ ื“ื™ ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ. ืขืก ืงืขืŸ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ืจืขื’ื•ืœืขืจ ื˜ื™ื™ึทื˜ืœ ื˜ืึธืžื‘ืึทื ืง, ื•ื•ื™ ืื™ืŸ Python, Perl, Ruby, Lua, ืขื˜ืง. ืขืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื•ืจืš ืึท ืžืึทืจืงืขืจ ืกื™ืกื˜ืขื. ื™ืขื ืข. ื•ื•ืขืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื™ื– ื‘ื“ืขื” ืฆื• ื–ื™ื™ืŸ ืึทืกื™ื™ื ื“ ืึท ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื•ื•ืขืจื˜, ืึท ื˜ื™ื™ึทื˜ืœ ืฆื• ื“ืขื ื•ื•ืขืจื˜ ืื™ื– ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ ืก ืึธื ืœื™ื™ื’ืŸ. ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜, ื“ืขืจ ื–ืึทืžืœืขืจ ื’ืขืฉื•ื•ื™ื ื“ ืœื•ื™ืคื˜ ื“ื•ืจืš ื“ื™ ืฉื•ื™ืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืจืฉื™ืžื” ืคื•ืŸ ืคึผื•ื™ื ื˜ืขืจื–.

ื”ืึทื ื“ืœื™ื ื’ ืคึผืจื•ื‘ื™ืจืŸ / ื›ืึทืคึผืŸ / ืœืขืกืึธืฃ ื‘ืœืึทืงืก

ื•ื•ื™ ืื™ืŸ ืงื™ื™ืŸ ืžืึธื“ืขืจืŸ ืฉืคึผืจืึทืš, ื•ื™ืกื ืขื ื”ืึทื ื“ืœื™ื ื’ ืื™ื– ืึท ื•ื•ื™ื›ื˜ื™ืง ืงืึธืžืคึผืึธื ืขื ื˜. ื“ื™ VM ื”ืึทืจืฅ ืื™ื– ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ืึท try..catch ื‘ืœืึธืง, ื•ื•ืึธืก ืงืขื ืขืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’ ื ืึธืš ืงืึทื˜ืฉื™ื ื’ ืึท ื•ื™ืกื ืขื ื“ื•ืจืš ืคึผื•ืฉื™ื ื’ ืขื˜ืœืขื›ืข ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืื™ื ืึทื ื˜ื• ื“ื™ ืึธื ืœื™ื™ื’ืŸ. ืื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“, ืื™ืจ ืงืขื ืขืŸ ื“ืขืคื™ื ื™ืจืŸ ืคึผืจื•ื‘ื™ืจืŸ / ื›ืึทืคึผืŸ / ืœืขืกืึธืฃ ื‘ืœืึทืงืก ืคื•ืŸ ืงืึธื“, ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืคึผืึธื–ื™ืฆื™ืข ื•ื•ื™ื™ื–ื˜ ื‘ื™ื™ ื›ืึทืคึผืŸ (ื•ื™ืกื ืขื ื”ืึทื ื“ืœืขืจ) ืื•ืŸ ืœืขืกืึธืฃ / ืกื•ืฃ (ืกื•ืฃ ืคื•ืŸ ื“ื™ ื‘ืœืึธืง).

ืžื•ืœื˜ื™ื˜ื”ืจืขืึทื“ื™ื ื’

ืขืก ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ ืื•ื™ืฃ ื“ื™ VM ืžื“ืจื’ื”. ืขืก ืื™ื– ืคึผืฉื•ื˜ ืื•ืŸ ื‘ืึทืงื•ื•ืขื ืฆื• ื ื•ืฆืŸ. ืขืก ืึทืจื‘ืขื˜ ืึธืŸ ืึท ื™ื‘ืขืจืจื™ื™ึทืก ืกื™ืกื˜ืขื, ืึทื–ื•ื™ ื“ื™ ืงืึธื“ ื–ืึธืœ ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืื™ืŸ ืขื˜ืœืขื›ืข ืคึฟืขื“ืขื ืขื˜ืœืขื›ืข ืžืึธืœ ืคืึทืกื˜ืขืจ ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™.

ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืœื™ื™ื‘ืจืขืจื™ื– ืคึฟืึทืจ VMs

ืขืก ืื™ื– ืงื™ื™ืŸ ื•ื•ืขื’ ืฆื• ื˜ืึธืŸ ืึธืŸ ื“ืขื. VM ืฉื˜ื™ืฆื˜ ื™ืžืคึผืึธืจืฅ, ืขื ืœืขืš ืฆื• ื•ื•ื™ ืขืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ืื ื“ืขืจืข ืฉืคึผืจืึทื›ืŸ. ืื™ืจ ืงืขื ืขืŸ ืฉืจื™ื™ึทื‘ืŸ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืงืึธื“ ืื™ืŸ ืžืึทืฉ ืื•ืŸ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืงืึธื“ ืื™ืŸ ื’ืขื‘ื•ื™ืจืŸ ืฉืคืจืึทื›ืŸ, ืื•ืŸ ืœื™ื ืง ื–ื™ื™ ืื™ืŸ ืื™ื™ืŸ.

ื™ื‘ืขืจื–ืขืฆืขืจ ืคื•ืŸ ื”ื•ื™ืš-ืžื“ืจื’ื” ืžืึทืฉ ืฉืคึผืจืึทืš ืฆื• ื‘ื™ื˜ืขืงืึธื“ืข ืคึฟืึทืจ VMs

ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืฉืคึผืจืึทืš

ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืฉืจื™ื™ึทื‘ืŸ ืึท ื™ื‘ืขืจื–ืขืฆืขืจ ืคื•ืŸ ืึท ืงืึธืžืคึผืœืขืงืก ืฉืคึผืจืึทืš ืื™ืŸ VM ืงืึธื“, ืื™ืš ืขืจืฉื˜ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืึท ื™ื ื˜ืขืจืžื™ื“ื™ื™ื˜ ืฉืคึผืจืึทืš. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืึทืกืขืžื‘ืœืขืจ-ื•ื•ื™ ืฉืจืขืงืœืขืš ืกืคึผืขืงื˜ืึทืงืœ ื•ื•ืึธืก ืขืก ืื™ื– ืงื™ื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืคื•ื ื˜ ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ืึธ. ืื™ืš ื•ื•ืขืœ ื ืึธืจ ื–ืึธื’ืŸ ืึทื– ืื•ื™ืฃ ื“ืขื ืžื“ืจื’ื” ื“ืขืจ ืื™ื‘ืขืจื–ืขืฆืขืจ ืคึผืจืึทืกืขืกืึทื– ืจื•ื‘ึฟ ืงืึทื ืกื˜ืึทื ืฅ ืื•ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื–, ืงืึทืœืงื™ืึทืœื™ื™ืฅ ื–ื™ื™ืขืจ ืกื˜ืึทื˜ื™ืง ืึทื“ืจืขืกืขืก ืื•ืŸ ื“ื™ ืึทื“ืจืขืกืขืก ืคื•ืŸ ืคึผืึธื–ื™ืฆื™ืข ืคื•ื ืงื˜ืŸ.

ืื™ื‘ืขืจื–ืขืฆืขืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ

ืื™ืš ื”ืื˜ ื ื™ืฉื˜ ืงืœื™ื™ึทื‘ืŸ ื“ื™ ื‘ืขืกื˜ืขืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ. ื“ืขืจ ืื™ื‘ืขืจื–ืขืฆืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ื‘ื•ื™ืขืŸ ืึท ืงืึธื“ ื‘ื•ื™ื, ื•ื•ื™ ืื ื“ืขืจืข ืื™ื‘ืขืจื–ืขืฆืขืจ ื˜ืึธืŸ. ืขืจ ืงื•ืงื˜ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ. ื™ืขื ืข. ืื•ื™ื‘ ื“ื™ ืฉื˜ื™ืง ืคื•ืŸ ืงืึธื“ ื•ื•ืึธืก ืื™ื– ืคึผืึทืจืกืขื“ ืงื•ืงื˜ ื•ื•ื™ "ื‘ืฉืขืช < ืฆื•ืฉื˜ืึทื ื“>:", ืขืก ืื™ื– ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืึทื– ื“ืึธืก ืื™ื– ืึท ื‘ืฉืขืช ืฉืœื™ื™ืฃ ืงืึทื ืกื˜ืจืึทืงื˜ ืื•ืŸ ื“ืึทืจืฃ ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜ ื•ื•ื™ ืึท ื‘ืฉืขืช ืฉืœื™ื™ืฃ ืงืึทื ืกื˜ืจืึทืงื˜. ืขืคึผืขืก ื•ื•ื™ ืึท ืงืึธืžืคึผืœืขืงืก ื‘ืึทืฉื˜ื™ืžืขืŸ-ืคืึทืœ.

ื“ืึทื ืง ืฆื• ื“ืขื ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืœื™ื™ื–ื•ื ื’, ื“ืขืจ ืื™ื‘ืขืจื–ืขืฆืขืจ ืื™ื– ื’ืขื•ื•ืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืขืจ ืฉื ืขืœ. ืึธื‘ืขืจ, ื“ื™ ื™ื– ืคื•ืŸ ื–ื™ื™ึทืŸ ืžืึทื“ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื™ื– ื‘ืื˜ื™ื™ื˜ื™ืง ื’ืขื•ื•ืืงืกืŸ. ืื™ืš ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืกื˜ืจืึทืงื˜ืฉืขืจื– ืคืึทืกื˜ืขืจ ื•ื•ื™ ืžื™ื™ืŸ ืงืึทื•ื•ืข ืงืขืŸ ืงื™ืœ ืึทืจืึธืคึผ. ืคื•ืœ OOP ืฉื˜ื™ืฆืŸ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ ืึท ื•ื•ืึธืš.

ืงืึธื“ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ

ื“ืึธ, ืคึฟืึทืจืฉื˜ื™ื™ื˜ ื–ื™ืš, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื‘ืขืกืขืจ (ืื•ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“, ืึธื‘ืขืจ ืฉืคึผืขื˜ืขืจ, ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืžืขืŸ ืงื•ืžื˜ ืฆื• ืขืก). ื‘ื™ื– ืื™ืฆื˜, ื“ื™ ืึธืคึผื˜ื™ืžื™ื–ืขืจ ื ืึธืจ ื•ื•ื™ื™ืกื˜ ื•ื•ื™ ืฆื• ืฉื ื™ื™ึทื“ืŸ ืึทื•ื•ืขืง ืึทื ื™ื•ื–ื“ ืงืึธื“, ืงืึทื ืกื˜ืึทื ืฅ ืื•ืŸ ื™ืžืคึผืึธืจืฅ ืคื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’. ืื•ื™ืš, ืขื˜ืœืขื›ืข ืงืึทื ืกื˜ืึทื ืฅ ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขืจื˜ ื–ืขื ืขืŸ ืจื™ืคึผืœื™ื™ืกื˜ ื“ื•ืจืš ืื™ื™ื ืขืจ. ืึทื– ืก ืึทืœืข.

ืฉืคึผืจืึทืš ืžืึทืฉ

ื’ืจื•ื ื˜ ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ืฉืคึผืจืึทืš

ื“ืขืจ ื”ื•ื™ืคึผื˜ ื’ืขื“ืึทื ืง ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ื“ื™ ืžืขืจืกื˜ ืคืึทื ื’ืงืฉืึทื ืึทืœ ืื•ืŸ ืคึผืฉื•ื˜ ืฉืคึผืจืึทืš ืžืขื’ืœืขืš. ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืึทื– ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืงืึธืคึผืขืก ืžื™ื˜ ื–ื™ื™ึทืŸ ืึทืจื‘ืขื˜ ืžื™ื˜ ืึท ืงืœืึทืคึผ.

ืงืึธื“ ื‘ืœืึทืงืก, ืคึผืจืึธื•ืกื™ื“ื–ืฉืขืจื– ืื•ืŸ ืคืึทื ื’ืงืฉืึทื ื–

ืึทืœืข ืงืึทื ืกื˜ืจืึทืงืฉืึทื ื– ืื™ืŸ ื“ืขืจ ืฉืคึผืจืึทืš ื–ืขื ืขืŸ ื’ืขืขืคื ื˜ ืžื™ื˜ ืึท ืฆื•ื•ื™ื™ืคึผื™ื ื˜ืœ. : ืื•ืŸ ื–ืขื ืขืŸ ืคืืจืžืื›ื˜ ื“ื•ืจืš ื“ืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ ืขืง.

ืคึผืจืึธื•ืกื™ื“ื–ืฉืขืจื– ืื•ืŸ ืคืึทื ื’ืงืฉืึทื ื– ื–ืขื ืขืŸ ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™ ื“ืขืจืงืœืขืจื˜ ื•ื•ื™ ืคึผืจืึธืง ืื•ืŸ ืคึฟื•ื ืง. ื“ื™ ืึทืจื’ื•ืžืขื ื˜ืŸ ื–ืขื ืขืŸ ืœื™ืกื˜ืขื“ ืื™ืŸ ืงืœืึทืžืขืจืŸ. ืึทืœืฅ ืื™ื– ื•ื•ื™ ืจื•ื‘ึฟ ืื ื“ืขืจืข ืฉืคึผืจืึทื›ืŸ.

ืึธืคึผืขืจืึทื˜ืึธืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืื™ืจ ืงืขื ืขืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื•ื•ืขืจื˜ ืคื•ืŸ ืึท ืคึฟื•ื ืงืฆื™ืข, ืึธืคึผืขืจืึทื˜ืึธืจ ื‘ืจืขื›ืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึทืจื•ื™ืกื’ืึทื ื’ ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ / ืคึฟื•ื ืงืฆื™ืข (ืื•ื™ื‘ ืขืก ืื™ื– ืึทืจื•ื™ืก ื“ื™ ืœื•ืคึผืก).

ืžื•ืกื˜ืขืจ ืงืึธื“:

...

func summ(a, b):
  return a + b
end

proc main():
  println(summ(inputln(), inputln()))
end

ืฉื˜ื™ืฆื˜ ื“ื™ื–ื™ื™ื ื–

  • ืœื•ืคึผืก: ืคึฟืึทืจ.. ืกื•ืฃ, ื‘ืฉืขืช.. ืกื•ืฃ, ื‘ื™ื–.. ืกื•ืฃ
  • ืงืึธื ื“ื™ื˜ื™ืึธื ืก: ืื•ื™ื‘..[ืึทื ื“ืขืจืฉ..]ืขื ื“, ื‘ืึทืฉื˜ื™ืžืขืŸ..[ืคืึทืœ..ืขื ื“..][ืื ื“ืขืจืข..]ืกื•ืฃ
  • ืžืขื˜ื”ืึธื“ืก: ืคึผืจืึธืง <ื ืึธืžืขืŸ>():... ืกื•ืฃ, ืคื•ื ืง <ื ืึธืžืขืŸ>():... ืกื•ืฃ
  • ืคื™ืจืžืข ืื•ืŸ ื’ื™ื™ืŸ ืฆื•: <ื ืึธืžืขืŸ>:, ืฉืคึผืจื™ื ื’ืขืŸ <ื ืึธืžืขืŸ>
  • ืขื ื•ืžืขืจื™ื™ืฉืึทื ื– ืื•ืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืขืจื™ื™ื–.

ื•ื•ืขืจื™ืึทื‘ืึทืœื–

ื“ืขืจ ืื™ื‘ืขืจื–ืขืฆืขืจ ืงืขื ืขืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ื–ื™ื™ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ, ืึธื“ืขืจ ืื•ื™ื‘ ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืฉืจื™ื™ื‘ื˜ ื•ื•ืึทืจ ืื™ื™ื“ืขืจ ื“ื™ืคื™ื™ื ื™ื ื’ ื–ื™ื™.

ืงืึธื“ ื‘ื™ื™ืฉืคื™ืœืŸ:

a ?= 10
b ?= a + 20

var a = 10, b = a + 20

ื’ืœืื‘ืืœืข ืื•ืŸ ื”ื™ื’ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ื’ืขืฉื˜ื™ืฆื˜.

OOP

ื ื•, ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืงื•ืžืขืŸ ืฆื• ื“ื™ ืžืขืจืกื˜ ื’ืขืฉืžืึทืง ื˜ืขืžืข. ืžืึทืฉ ืฉื˜ื™ืฆื˜ ืึทืœืข ืึธื‘ื™ืขืงื˜-ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืคึผืึทืจืึทื“ื™ืžื–. ื™ืขื ืข. ืงืœืืกืŸ, ื™ืจื•ืฉื”, ืคึผืึธืœื™ืžืึธืจืคื™ืกื (ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ื ืึทืžื™ืฉ), ื“ื™ื ืึทืžื™ืฉ ืึธื˜ืึทืžืึทื˜ื™ืง ืึธืคึผืฉืคึผื™ื’ืœื•ื ื’ ืื•ืŸ ื™ื ื˜ืจืึทืกืคึผืขืงืฉืึทืŸ (ืคื•ืœ).

ืึธืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืึทื“ื™ืฉืึทืŸ, ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ื’ืขื‘ืŸ ืงืึธื“ ื‘ื™ื™ืฉืคื™ืœืŸ.

ื ืคึผืฉื•ื˜ ืงืœืึทืก ืื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืื™ื:

uses <bf>
uses <crt>

class MyClass:
  var a, b
  proc Create, Free
  func Summ
end

proc MyClass::Create(a, b):
  $a = new(a)
  $b = new(b)
end

proc MyClass::Free():
  Free($a, $b)
  $rem()
end

func MyClass::Summ():
  return $a + $b
end

proc main():
  x ?= new MyClass(10, 20)
  println(x->Summ())
  x->Free()
end

ืจืขื–ื•ืœื˜ืึทื˜: 30.

ื™ืจื•ืฉื” ืื•ืŸ ืคึผืึธืœื™ืžืึธืจืคื™ืกื:

uses <bf>
uses <crt>

class MyClass:
  var a, b
  proc Create, Free
  func Summ
end

proc MyClass::Create(a, b):
  $a = new(a)
  $b = new(b)
end

proc MyClass::Free():
  Free($a, $b)
  $rem()
end

func MyClass::Summ():
  return $a + $b
end

class MyNewClass(MyClass):
  func Summ
end

func MyNewClass::Summ():
  return ($a + $b) * 2
end

proc main():
  x ?= new MyNewClass(10, 20)
  println(x->Summ())
  x->Free()
end

ืจืขื–ื•ืœื˜ืึทื˜: 60.

ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ื™ื ืึทืžื™ืฉ ืคึผืึธืœื™ืžืึธืจืคื™ืกื? ื™ืึธ, ื“ืึธืก ืื™ื– ืึธืคึผืฉืคึผื™ื’ืœื•ื ื’!:

uses <bf>
uses <crt>

class MyClass:
  var a, b
  proc Create, Free
  func Summ
end

proc MyClass::Create(a, b):
  $a = new(a)
  $b = new(b)
end

proc MyClass::Free():
  Free($a, $b)
  $rem()
end

func MyClass::Summ():
  return $a + $b
end

class MyNewClass(MyClass):
  func Summ
end

func MyNewClass::Summ():
  return ($a + $b) * 2
end

proc main():
  x ?= new MyClass(10, 20)
  x->Summ ?= MyNewClass::Summ
  println(x->Summ())
  x->Free()
end

ืจืขื–ื•ืœื˜ืึทื˜: 60.

ืื™ืฆื˜ ืœืึธื–ืŸ ืื•ื ื“ื– ื ืขืžืขืŸ ืึท ืžืึธืžืขื ื˜ ืฆื• ื™ื ื˜ืจืึธื•ืกืคึผืขืงื˜ ืคึฟืึทืจ ืคึผืฉื•ื˜ ื•ื•ืึทืœื•ืขืก ืื•ืŸ ืงืœืืกืŸ:

uses <bf>
uses <crt>

class MyClass:
  var a, b
end

proc main():
  x ?= new MyClass
  println(BoolToStr(x->type == MyClass))
  x->rem()
  println(BoolToStr(typeof(3.14) == typeReal))
end

ื•ื•ืขื˜ ืจืขื–ื•ืœื˜ืึทื˜: ืืžืช, ืืžืช.

ื•ื•ืขื’ืŸ ืึทืกื™ื™ื ืžืึทื ื˜ ืึธืคึผืขืจื™ื™ื˜ืขืจื– ืื•ืŸ ื™ืงืกืคึผืœื™ืกืึทื˜ ืคึผื•ื™ื ื˜ืขืจื–

ื“ืขืจ ?= ืึธืคึผืขืจืึทื˜ืึธืจ ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืึท ื˜ื™ื™ึทื˜ืœ ืฆื• ืึท ื•ื•ืขืจื˜ ืื™ืŸ ื–ื›ึผืจื•ืŸ.
ื“ืขืจ = ืึธืคึผืขืจืึทื˜ืึธืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ืึท ื•ื•ืขืจื˜ ืื™ืŸ ื–ื›ึผืจื•ืŸ ื ื™ืฆืŸ ืึท ื˜ื™ื™ึทื˜ืœ ืคื•ืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง.
ืื•ืŸ ืื™ืฆื˜ ืึท ื‘ื™ืกืœ ื•ื•ืขื’ืŸ ื™ืงืกืคึผืœื™ืกืึทื˜ ืคึผื•ื™ื ื˜ืขืจื–. ืื™ืš ื”ืึธื‘ ื–ื™ื™ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ืขืจ ืฉืคึผืจืึทืš ืึทื–ื•ื™ ืึทื– ื–ื™ื™ ืขืงื–ื™ืกื˜ื™ืจืŸ.
@<variable> - ื ืขืžืขืŸ ืึท ื™ืงืกืคึผืœื™ืกืึทื˜ ื˜ื™ื™ึทื˜ืœ ืฆื• ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง.
?<variable> - ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื“ื•ืจืš ื˜ื™ื™ึทื˜ืœ.
@= - ื‘ืึทืฉื˜ื™ืžืขืŸ ืึท ื•ื•ืขืจื˜ ืฆื• ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื“ื•ืจืš ืึท ื™ืงืกืคึผืœื™ืกืึทื˜ ื˜ื™ื™ึทื˜ืœ ืฆื• ืขืก.

ืžื•ืกื˜ืขืจ ืงืึธื“:

uses <bf>
uses <crt>

proc main():
  var a = 10, b
  b ?= @a
  PrintLn(b)
  b ?= ?b
  PrintLn(b)
  b++
  PrintLn(a)
  InputLn()
end

ื•ื•ืขื˜ ืจืขื–ื•ืœื˜ืึทื˜: ืขื˜ืœืขื›ืข ื ื•ืžืขืจ, 10, 11.

Try..[catch..][finally..]end

ืžื•ืกื˜ืขืจ ืงืึธื“:

uses <bf>
uses <crt>

proc main():
  println("Start")
  try:
    println("Trying to do something...")
    a ?= 10 / 0
  catch:
    println(getError())
  finally:
    println("Finally")
  end
  println("End")
  inputln()
end

ืคึผืœืึทื ืก ืคึฟืึทืจ ื“ื™ ืฆื•ืงื•ื ืคึฟื˜

ืื™ืš ื”ืึทืœื˜ืŸ ืงื•ืงืŸ ืื•ืŸ ืงื•ืงืŸ ืื™ืŸ GraalVM & Truffle. ืžื™ื™ึทืŸ ืจื•ื ื˜ื™ืžืข ืกื•ื•ื™ื•ื•ืข ื”ืื˜ ื ื™ืฉื˜ ืึท JIT ืงืึทืžืคึผื™ื™ืœืขืจ, ืึทื–ื•ื™ ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืขืก ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ื‘ืœื•ื™ื– ืงืึทืžืคึผืขื˜ื™ื˜ื™ื•ื• ืžื™ื˜ Python. ืื™ืš ื”ืึธืคึฟืŸ ืึทื– ืื™ืš ื•ื•ืขื˜ ืงืขื ืขืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ JIT ื–ืึทืžืœื•ื ื’ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ GraalVM ืึธื“ืขืจ LLVM.

ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™

ืื™ืจ ืงืขื ืขืŸ ืฉืคึผื™ืœืŸ ืžื™ื˜ ื“ื™ ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ืื•ืŸ ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื–ื™ืš.

ืคึผืœืึทืฅ
ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ื™ืฃ GitHub

ื“ืื ืง ืื™ืจ ืคึฟืึทืจ ืœื™ื™ืขื ืขืŸ ืฆื• ื“ื™ ืกื•ืฃ ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื“ืึธืก.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’