ืคึฟืึทืจ ืขืืืขืืข ืืึธืจื ืืื ืืขืคืจืืืื ืืืื ืืึทื ื ืฆื ืึทื ืืืืืงืืขื ืืืื ืืืืืขื ืข ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื. ืืื ืืขืืืืื ืฆื ืืึทืื, ืืื ืืืื ืืืื ืื ื, ืื ืืขืจืกื ืคึผืฉืื, ืืึธืจ ืคืึทื ืืงืฉืึทื ืึทื ืืื ืืึทืงืืืขื ืฉืคึผืจืึทื ืืขืืืขื.
ืืื ืืขื ืึทืจืืืงื ืืื ืืืืื ืฆื ืืืืืคึผืื ืงื ืื ืืืืคึผื ืกืืึทืืขืก ืคืื ืืืื ืึทืจืืขื ืืื, ืฆื ืึธื ืืืืื ืืื, ืืึทืฉืจืืึทืื ืื ืืืฉืืคื ืืึทืืจืืฃ ืคืื ืืขืจ ืฉืคึผืจืึทื ืืื ืืืึทื ืขืจืฉืืขืจ ืืืคึผืืึทืืขื ืืืืฉืึทื, ืืืึธืก ืืื ืึทืจืืขื ืืืฆื.
ืืื ืืืจ ืคืืจืืืก ืืืื ืื ืืื ืืื ืืขืฉืจืืื ืืขื ืืื ืฆื ืคืจืืืขืงื ืืื ืคืจืื ืคืืกืงืื, ืืืืื... ืืืืื ืืืืฃ ืขืก ืงืขื ืขื ืืืื ืคืืจืืืืื ืคึฟืึทืจ ืึท ืจืืืืง ื ืืืขืจ ืคืื ืคึผืืึทืืคืึธืจืืก, ืืื ืืขืจ ืงืึทืืคึผืืืืขืจ ืืื ืืจืืื ืืืืขืจ ืึธืคึผืืืืืืขื ืืื ืึทืจืืขืก (ืืื ืงืืืึทืื ืึทืืข ืื ืงืึทืืคึผืึธืื ืึทื ืฅ ืคืื ืื ืคึผืจืืืขืงื ืืื ืื ืึธ2 ืคืึธื).
ืฉืคึผืจืึทื ืจืื ืืืืข
ืขืจืฉืืขืจ ืคืื ืึทืืข, ืขืก ืืื ืืืขืจื ืฆื ืจืขืื ืืืขืื ืื ืืืืจืืืึทื ืืึทืฉืื ืืืึธืก ืืื ืืขืืื ืฆื ืฉืจืืึทืื ืฆื ืืืืคื ืฆืืงืื ืคึฟื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืืืื ืฉืคึผืจืึทื. ืืื ืืึทืฉืืึธืกื ืฆื ืื ืกืืจืืืขื ื ืึท ืึธื ืืืืื ืึทืจืงืึทืืขืงืืฉืขืจ, ืืึธืืขืจ, ืืืืึทื ืขืก ืืื ืืขืืืขื ืื ืืืืึทืกื ืืืขื. ืืื ืืื ื ืืฉื ืืขืคืื ืขื ืงืืื ืืืื ื ืืจืืืืขืจ ืืจืืืงื ืืืืืืื ืืืก ืฆื ืืืื ืืืืฃ ืจืืกืืฉ, ืืื ื ืืืืขื ืืืืก ืืื ืืื ืืื ืืืงืขื ืขื ืืื ืืขื ืขื ืืืืฉ-ืฉืคืจืืื ืืืืขืจืืื, ืืื ืืื ืืื ืืืืขืงืืขืืขืฆื ืฆื ืืืืืื ืืื ืฉืจืืืื ืืืื ืืืืืขื ืข ืืืขืืึธืกืืคึผืขื. ืืืืึทืืขืจ ืืื ืืืขื ืคืึธืจืฉืืขืื ืืืื "ืึทืืืึทื ืกืืจืืข" ืืขืืื ืงืขื ืืื ืืืืืขืืึทืคึผืืึทื ืฅ ืืื ืืขื ืขื ืื.
ืึธื ืืืืื ืืืคึผืืึทืืขื ืืืืฉืึทื
ืืึธื, ืืื ืื ืฉืคึผืืฅ ืคืื ืื VM ืืื ืืขืจ ืึธื ืืืืื. ืืื ืืืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืขืก ืึทืจืืขื ืืื ืืืึทืงืก. ืืกืขื ืฉืึทืื, ืืึธืก ืืื ืึท ืคึผืฉืื ืืขื ืืข ืคืื โโโโืคึผืืื ืืขืจื ืืื ืึท ืืืึทืืขืืืืืง ืฆื ืงืจืึธื ืื ืืื ืืขืงืก ืคืื ืื ืฉืคึผืืฅ ืคืื ืื ืึธื ืืืืื.
ะัะธ ะตะณะพ ะธะฝะธัะธะฐะปะธะทะฐัะธะธ, ัะพะทะดะฐะตััั ะผะฐััะธะฒ ะฝะฐ 256 ัะปะตะผะตะฝัะพะฒ. ะัะปะธ ะฒ ััะตะบ ะทะฐะบะธะดัะฒะฐะตััั ะฑะพะปััะตะต ัะธัะปะพ ัะบะฐะทะฐัะตะปะตะน, ัะพ ะตะณะพ ัะฐะทะผะตั ัะฒะตะปะธัะธะฒะฐะตััั ะฝะฐ ัะปะตะดัััะธะต 256 ัะปะตะผะตะฝัะพะฒ. ะกะพะพัะฒะตัััะฒะตะฝะฝะพ, ะฟัะธ ัะดะฐะปะตะฝะธะธ ัะปะตะผะตะฝัะพะฒ ะธะท ััะตะบะฐ โ ะตะณะพ ัะฐะทะผะตั ัะตะณัะปะธััะตััั.
ืื VM ื ืืฆื ืขืืืขืืข ืกืืึทืงืก:
- ืืืืคึผื ืึธื ืืืืื.
- ื ืึธื ืืืืื ืคึฟืึทืจ ืกืืึธืจืื ื ืฆืืจืืงืงืืืขื ืคืื ืงืื.
- ืืืกื ืงืึทืืขืงืืขืจ ืึธื ืืืืื.
- ืคึผืจืึผืืื / ืืึทืคึผื / ืืขืกืึธืฃ ืคืึทืจืฉืคึผืึทืจื ืืึทื ืืืขืจ ืึธื ืืืืื.
ะะพะฝััะฐะฝัั ะธ ะฟะตัะตะผะตะฝะฝัะต
ืืึธืก ืืื ืคึผืฉืื. ืงืึทื ืกืืึทื ืฅ ืืขื ืขื ืืึทื ืืึทืื ืืื ืึท ืืึทืืื ืืขืจ ืงืืืื ืฉืืืง ืคืื ืงืึธื ืืื ืืขื ืขื ืื ืืืฆื ืืื ืฆืืงืื ืคึฟื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืจื ืกืืึทืืืง ืืืขื ืื. ืืืขืจืืึทืืึทืื ืืขื ืขื ืึท ืืขื ืืข ืคืื โโืคึผืืื ืืขืจื ืคืื ืึท ืืืืขืจ ืืจืืืก, ืึทืงืกืขืก ืฆื ืืืึทื ืกืขืื ืืื ืืืจืืืขืงืึธืื ืืืจื ืืื ืืขืงืก - ื.ืข. ืกืืึทืืืง ืึทืืจืขืก. ืืืขืจืืึทืืึทืื ืงืขื ืขื ืืืื ืคึผืืฉื ืฆื ืื ืฉืคึผืืฅ ืคืื ืื ืึธื ืืืืื ืึธืืขืจ ืืืืขื ืขื ืคึฟืื ืืึธืจื. ืึทืงืืืึทืืื, ืืืืึทื ืืึธืืฉ ืืื ืืืขืจ ืืืขืจืืึทืืึทืื ืืกืขื ืฉืึทืื ืงืจืึธื ืคึผืืื ืืขืจื ืฆื ืืืึทืืืขืก ืืื 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.
ืจืืคึผืึทืืึทืืึธืจื
ืืืจ ืงืขื ืขื ืฉืคึผืืื ืืื ืื ืืืืืขืืึทืคึผืืึทื ืฅ ืืื ื ืึธืืืืื ืื ืคึผืจืืืขืงื ืืื.
ืืื ืง ืืืจ ืคึฟืึทืจ ืืืืขื ืขื ืฆื ืื ืกืืฃ ืืืื ืืืจ ืืึธื ืืึธืก.
ืืงืืจ: www.habr.com