เปเบเบฑเบโเปเบงโเบฅเบฒโเบซเบผเบฒเบโเบเบตโเบเบตเปโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเปเบเปโเบเบฐโเบเบฒโเบเบฒเบกโเปเบโเบเบฒเบโเบเบฑเบโเบเบฐโเบเบฒโเบเบฒโเบชเบฒโเปเบเบโเบเบฒเบโเบเบญเบโเบเบปเบโเปเบญเบโ. เบเปเบญเบเบขเบฒเบเบชเปเบฒเบ, เปเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบญเบเบเปเบญเบ, เบเบฒเบชเบฒเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ, เบกเบตเบเบฐเปเบซเบเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเปเบฅเบฐเบชเบฐเบเบงเบเบเบตเปเปเบเบฑเบเปเบเปเบเป.
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบญเบเบเปเบญเบเบเบฒเบเปเบเบฑเปเบเบซเบเบฑเบเปเบเบดเบเบเบฑเปเบเบเบญเบเบเบปเปเบเบเปเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเปเบญเบเปเบฅเบฐ, เปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบ, เบญเบฐเบเบดเบเบฒเบเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบตเปเบชเปเบฒเบเบเบทเปเบเบเบญเบเบเบฒเบชเบฒเปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบญเบเบกเบฑเบ, เปเบเบดเปเบเบเปเบญเบเบเปเบฒเบฅเบฑเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเป.
เปเบซเปเบเปเบญเบเปเบงเบปเปเบฒเบฅเปเบงเบเบซเบเปเบฒเบงเปเบฒเบเปเบญเบเบเบฝเบเปเบเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบ Free Pascal, เปเบเบฒเบฐเบงเปเบฒ ... เปเบเบฅเปเบเบฅเบกเบเปเบฒเบเปเปเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเบชเปเบฒเบฅเบฑเบเปเบงเบเบตเบเปเบฒเบเบงเบเบซเบฅเบฒเบ, เปเบฅเบฐเบเบปเบงเบฅเบงเบเบฅเบงเบกเบเบปเบงเบกเบฑเบเปเบญเบเบเบฐเบฅเบดเบ binaries เบเบตเปเบเบตเบเบตเปเบชเบธเบ (เบเปเบญเบเบฅเบงเบเบฅเบงเบกเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบญเบเปเบเบเบเบฒเบเบเปเบงเบเบเบธเบ O2).
เปเบงเบฅเบฒเปเบฅเปเบเบเบฒเบชเบฒ
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบกเบฑเบเบเบธเปเบกเบเปเบฒเบเบตเปเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบ virtual เบเบตเปเบเปเบญเบเบเปเบญเบเบเบฝเบเปเบเบทเปเบญเปเบเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบญเบฐเบเบฒเบเบปเบเปเบเบเบฒเบชเบฒเบเบญเบเบเปเบญเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบเบฐเบเบดเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ stack, เบเบฒเบเบเบต, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเปเบฒเบเบเบตเปเบชเบธเบ. เบเปเบญเบเบเปเปเบเบปเบเบเบปเบเบเบงเบฒเบกเบเบปเบเบเบฐเบเบดเบเบฝเบงเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเปเบเบเบเบตเปเปเบเบเบฒเบชเบฒเบฅเบฑเบเปเบเบ, เบเบฑเปเบเบเบฑเปเบเบซเบผเบฑเบเบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบธเปเบเปเบเบตเบเบเบฑเบเปเบญเบเบฐเบชเบฒเบเบเบฒเบชเบฒเบญเบฑเบเบเบดเบ, เบเปเบญเบเบเบฑเปเบเบฅเบปเบเปเบเบทเปเบญเบญเบญเบเปเบเบเปเบฅเบฐเบเบฝเบเบฅเบปเบเบเบตเบเบเบญเบเบเปเบญเบเปเบญเบ. เบเปเปเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเปเบฒเบชเบฐเปเบซเบเบตเปเบเบงเบเบงเบฒเบกเบเบดเบ "เบเปเบฒเบงเบซเบเปเบฒ" เบเบญเบเบเปเบญเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเปเบฅเบทเปเบญเบเบเบตเป.
เบเบฒเบเบเบฐเบเบดเบเบฑเบ stack
เปเบเปเบเบญเบ, เบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบ VM เปเบกเปเบ stack. เปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเปเบญเบเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบเบฑเบ. เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบง, เบเบตเปเปเบกเปเบเบเบปเบงเบเบตเปเบเบตเปเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบเบปเบงเปเบเบเบตเปเบเบฐเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบฑเบเบเบฐเบเบตเบเบญเบเบชเปเบงเบเปเบเบดเบเบเบญเบ stack.
เปเบกเบทเปเบญเบกเบฑเบเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบ, array เบเบญเบ 256 เบญเบปเบเบเบฐเบเบญเบเปเบกเปเบเบเบทเบเบชเปเบฒเบเบเบถเปเบ. เบเปเบฒเบเบปเบงเบเบตเปเปเบเบตเปเบกเปเบเบตเบกเบเบทเบเบเบปเบเปเบชเป stack, เบเบฐเบซเบเบฒเบเบเบญเบเบกเบฑเบเปเบเบตเปเบกเบเบถเปเบ 256 เบญเบปเบเบเบฐเบเบญเบเบเปเปเปเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบกเบทเปเบญเปเบญเบปเบฒเบญเบปเบเบเบฐเบเบญเบเบญเบญเบเบเบฒเบ stack, เบเบฐเบซเบเบฒเบเบเบญเบเบกเบฑเบเบเบทเบเบเบฑเบ.
VM เปเบเปเบซเบผเบฒเบ stacks:
- stack เบซเบผเบฑเบ.
- stack เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบธเบเบเบฑเบเบเบทเบ.
- stack เปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญ.
- เบเบฐเบเบฒเบเบฒเบก / เบเบฑเบ / เบชเบธเบเบเปเบฒเบเบชเบฐเบเบฑเบ stack handler.
เบเบปเบเบเบตเป เปเบฅเบฐเบเบปเบงเปเบ
เบญเบฑเบเบเบตเปเปเบกเปเบเบเปเบฒเบเบเบฒเบ. เบเบปเบเบเบตเปเบเบทเบเบเบฑเบเบเบฒเบเบขเบนเปเปเบเบฅเบฐเบซเบฑเบเบเบฐเบซเบเบฒเบเบเปเบญเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบฅเบฐเบกเบตเบขเบนเปเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบญเบฐเบเบฒเบเบปเบเบเปเบฒเบเบเบตเปเบขเบนเปเบเบปเบเบเบตเป. เบเบปเบงเปเบเปเบกเปเบ array เบเบญเบเบเบปเบงเบเบตเปเบเบญเบเบเบฐเบซเบเบฒเบเบเบตเปเปเบเปเบเบญเบ, เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบธเบฅเบฑเบเบเบญเบเบกเบฑเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเบฑเบเบชเบฐเบเบต - i.e. เบเบตเปเบขเบนเป static. เบเบปเบงเปเบเบชเบฒเบกเบฒเบเบเบทเบเบเบนเปเปเบเบเบฒเบเปเบเบดเบเบเบญเบ stack เบซเบผเบทเบญเปเบฒเบเบเบฒเบเบเปเบญเบเบเบฑเปเบ. เปเบเปเบเบดเบเปเบฅเปเบง, เปเบเบฒเบฐเบงเปเบฒ เปเบเบเบฐเบเบฐเบเบตเปเบเบปเบงเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบปเบงเบเบตเปเปเบเบซเบฒเบเปเบฒเปเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ VM, เบเบฒเบชเบฒเปเบเปเบเบทเบเบเบญเบเบเปเบฒเปเบเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบปเบงเบเบตเป implicit.
เบเบปเบเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญ
เปเบ VM เบเบญเบเบเปเบญเบเบกเบฑเบเปเบเบฑเบเปเบเบดเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเบฑเบเบเบฑเบเบเบฐเบเบฒเปเบญเบเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบฐเปเบเบซเบฒเบเบนเปเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญ. เบกเบฑเบเบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเปเบเปเบเบปเบงเบเบตเปเบเบปเบงเบเบตเปเบเบปเบเบเบฐเบเบด, เบเบทเบเบฑเบ Python, Perl, Ruby, Lua, เปเบฅเบฐเบญเบทเปเบเป. เบกเบฑเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเปเบฒเบเบฅเบฐเบเบปเบเปเบเบทเปเบญเบเบซเบกเบฒเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เปเบกเบทเปเบญเบเบปเบงเปเบเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบกเบญเบเบเปเบฒเบเบปเปเบงเบเบฒเบง, เบเบปเบงเบเบตเปเปเบเบซเบฒเบเปเบฒเบเบตเปเบเบฐเบเบทเบเปเบเบตเปเบกเปเบชเป stack เบเบญเบเบเบนเปเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญ. เปเบเบญเบฐเบเบฒเบเบปเบ, เบเบนเปเปเบเบฑเบเบฅเบงเบเบฅเบงเบกเบขเปเบฒเบเปเบงเบงเบฒเปเบฅเปเบเบเปเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบปเบงเบเบตเปเบเบตเปเบเบฝเบกเปเบงเปเปเบฅเปเบง.
เบเบฒเบเบเบฑเบเบเบฒเบเบเบฐเบเบฒเบเบฒเบก / เบเบฑเบ / เบชเบธเบเบเปเบฒเบเบเบฑเบเบเบงเบฒเบ
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบชเบฒเบเบตเปเบเบฑเบเบชเบฐเปเบซเบก, เบเบฒเบเบเบฑเบเบเบฒเบเบเปเปเบเบปเบเปเบงเบฑเปเบเปเบกเปเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบชเปเบฒเบเบฑเบ. เบซเบผเบฑเบ VM เบเบทเบเบซเปเปเบเปเบงเบ try..catch block, เปเบเบดเปเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบทเบเบชเบนเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบเบซเบผเบฑเบเบเบฒเบเบเบฑเบเบเปเปเบเบปเบเปเบงเบฑเปเบเปเบเบเบเบฒเบเบเบปเบเบเบฒเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบเปเบชเป stack. เปเบเบฅเบฐเบซเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบเบเบฐเบเบฒเบเบฒเบก / เบเบฑเบ / เบชเบธเบเบเปเบฒเบเบเบฅเบฑเบญเบเบเบญเบเบฅเบฐเบซเบฑเบ, เบฅเบฐเบเบธเบเบธเบเปเบเบปเปเบฒเบเบตเปเบเบฑเบ (เบเบปเบงเบเบฑเบเบเบฒเบเบเปเปเบเบปเบเปเบงเบฑเปเบ) เปเบฅเบฐเบชเบธเบเบเปเบฒเบ / เบชเบดเปเบเบชเบธเบ (เบชเบดเปเบเบชเบธเบเบเบญเบเบเบฅเบฑเบญเบ).
Multithreading
เบกเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบ VM. เบกเบฑเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบชเบฐเบเบงเบเปเบเบเบฒเบเบเปเบฒเปเบเป. เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบเปเปเบกเบตเบฅเบฐเบเบปเบเบเบฑเบเบเบงเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบฅเบฐเบซเบฑเบเบเบงเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบซเบผเบฒเบเบซเบปเบงเบเปเปเบซเบผเบฒเบเบเบฑเปเบเปเบง, เบเบฒเบกเบฅเปเบฒเบเบฑเบ.
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฒเบเบเบญเบเบชเปเบฒเบฅเบฑเบ VMs
เบเปเปเบกเบตเบงเบดเบเบตเบเบตเปเบเบฐเปเบฎเบฑเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบตเป. VM เบฎเบญเบเบฎเบฑเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ, เบเปเบฒเบเบเบทเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบฒเบชเบฒเบญเบทเปเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบฒเบเบชเปเบงเบเบเบญเบเบฅเบฐเบซเบฑเบเปเบ Mash เปเบฅเบฐเบเบฒเบเบชเปเบงเบเบเบญเบเบฅเบฐเบซเบฑเบเปเบเบเบฒเบชเบฒเบเปเบฒเปเบเบตเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบทเปเบญเบกเบเปเปเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบปเปเบฒเปเบเปเบเบซเบเบถเปเบ.
เบเบฑเบเปเบเบเบฒเบเบเบฒเบชเบฒ Mash เบฅเบฐเบเบฑเบเบชเบนเบเปเบเบซเบฒ bytecode เบชเปเบฒเบฅเบฑเบ VMs
เบเบฒเบชเบฒเบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบ
เปเบเบทเปเบญเบเบฝเบเบเบฑเบเปเบเบขเปเบฒเบเปเบงเบงเบฒเบเบฒเบเบเบฒเบชเบฒเบเบตเปเบชเบฑเบเบชเบปเบเปเบเบปเปเบฒเปเบเปเบเบฅเบฐเบซเบฑเบ VM, เบเปเบญเบเบเปเบฒเบญเบดเบเปเบเปเบเบฑเบเบเบฐเบเบฒเบเบฒเบชเบฒเบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบ. เบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบเปเบเบฑเบเบเบฒเบซเบเปเบฒเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบเบท assembler เบเบตเปเบเปเปเบกเบตเบเบธเบเบเบดเปเบชเบเปเบเบเบฒเบเบเบดเบเบฒเบฅเบฐเบเบฒเบเบตเปเบเบตเป. เบเปเบญเบเบเบฐเปเบงเบปเปเบฒเบเบฝเบเปเบเปเบงเปเบฒเปเบเบฅเบฐเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบฐเบเบฐเบกเบงเบเบเบปเบเบเปเบฒเบเบปเบเบเบตเปเปเบฅเบฐเบเบปเบงเปเบเบชเปเบงเบเปเบซเบเป, เบเบดเบเปเบฅเปเบเบตเปเบขเบนเปเบเบปเบเบเบตเปเบเบญเบเบเบงเบเปเบเบปเบฒเปเบฅเบฐเบเบตเปเบขเบนเปเบเบญเบเบเบธเบเปเบเบปเปเบฒ.
เบเบฒเบเบฑเบเบเบฐเบเบฐเบเบฑเบเปเบ
เบเปเบญเบเบเปเปเปเบเปเปเบฅเบทเบญเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบตเปเบเบตเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบ. เบเบฑเบเปเบเบเปเปเปเบเปเบชเปเบฒเบเบเบปเปเบเปเบกเปเบฅเบฐเบซเบฑเบ, เบเบฑเปเบเบเบตเปเบเบฑเบเปเบเบญเบทเปเบเปเปเบฎเบฑเบ. เบฅเบฒเบงเปเบเบดเปเบเปเบเบเบญเบเบเบปเปเบเบเบญเบเปเบเบเบชเปเบฒเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเปเบฒเบเบดเปเบเบชเปเบงเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบทเบเบงเบดเปเบเบฒเบฐเปเบเบดเปเบเบเบทเบงเปเบฒ "while :", เบกเบฑเบเบเบฐเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบเบงเปเบฒเบเบตเปเปเบกเปเบเบเบฒเบเบชเปเบฒเบ loop เปเบเบเบฐเบเบฐเบเบตเปเปเบฅเบฐเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบธเบเปเบเปเบเปเบเบฑเบเปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเบชเปเบฒเบ loop. เบเบฒเบโเบชเบดเปเบโเบเบฒเบโเบขเปเบฒเบโเบเปเบฒเบโเบเบท switch-case เบเบตเปโเบเบฑเบโเบเปเบญเบโ.
เบเปโเบเบญเบโเปเบโเบเบฑเบโเบเบฒเบโเปเบเปโเปเบโเบชเบฐโเบเบฒโเบเบฑเบโเบเบฐโเบเบฐโเบเบตเปโ, เบเบนเปโเปเบโเปเบเปโเบเบฒเบโเปเบเบฑเบโเบเปเปโเปเบเปโเปเบงโเบซเบผเบฒเบโ. เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบงเบฒเบกเบเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเบเปเบเบเบเบญเบเบกเบฑเบเปเบเปเปเบเบตเปเบกเบเบถเปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบเบตเปเบกเปเบเบเบชเปเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบงเบเบงเปเบฒเบเบตเปเบเบฒเปเบเบเบญเบเบเปเบญเบเบชเบฒเบกเบฒเบเปเบขเบฑเบเบฅเบปเบ. เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ OOP เบขเปเบฒเบเปเบเบฑเบกเบเบตเปเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเปเบงเบฅเบฒเบซเบเปเบญเบเบเบงเปเบฒเบซเบเบถเปเบเบญเบฒเบเบดเบ.
เบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบฅเบฐเบซเบฑเบ
เปเบเบเบตเปเบเบตเป, เปเบเปเบเบญเบ, เบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเบตเบเบงเปเบฒ (เปเบฅเบฐเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ, เปเบเปเบเปเปเบกเบฒ, เบเบฑเบเบเบตเบเบตเปเบเบปเบเบซเบเบถเปเบเปเบเบปเปเบฒเปเบเบกเบฑเบ). เบกเบฒเบฎเบญเบเบเบฐเบเบธ, optimizer เบเบฝเบเปเบเปเบฎเบนเปเบงเบดเบเบตเบเบฒเบเบเบฑเบเบฅเบฐเบซเบฑเบเบเบตเปเบเปเปเปเบเปเปเบเป, เบเบปเบเบเบตเปเปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเบปเปเบฒเบเบฒเบเบเบฒเบเบเบฐเบเบญเบ. เบเบญเบเบเบฒเบเบเบตเป, เบซเบผเบฒเบเปเบเปเบฒเบเบปเบเบเบตเปเบเบตเปเบกเบตเบเปเบฒเบเบฝเบงเบเบฑเบเบเบทเบเปเบเบเบเบตเปเบเปเบงเบเบญเบฑเบเบเบฝเบง. เบซเบกเบปเบโเปเบเบปเปเบฒโเบเบตเป.
เบเบฒเบชเบฒ Mash
เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบชเบฒ
เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบปเปเบเบเปเปเบกเปเบเปเบเบทเปเบญเบเบฑเบเบเบฐเบเบฒเบเบฒเบชเบฒเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเปเบฅเบฐเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบเบเบตเปเปเบเบฑเบเปเบเปเบเป. เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบดเบโเบงเปเบฒโเบเบฒเบโเบเบฑเบโเบเบฐโเบเบฒโเบฎเบฑเบโเบกเบทโเบเบฑเบโเบงเบฝเบโเบเบฒเบโเบเบญเบโเบเบปเบโเบเปเบงเบโเบชเบฝเบโเบเบฑเปเบโ.
เบเบฑเบเบฅเบฐเบซเบฑเบ, เบเบฑเปเบเบเบญเบเปเบฅเบฐเบซเบเปเบฒเบเบตเป
เบเบฒเบเบเปเปเบชเปเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเบเบฒเบชเบฒเปเบกเปเบเปเบเบตเบเบเปเบงเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบ. : เปเบฅเบฐเบเบทเบเบเบดเบเปเบเบเบเบนเปเบเบฐเบเบญเบเบเบฒเบ เปเบเบเบญเบเบเปเบฒเบ.
เบเบฑเปเบเบเบญเบเปเบฅเบฐเบซเบเปเบฒเบเบตเปเบเบทเบเบเบฐเบเบฒเบเบงเปเบฒเปเบเบฑเบ proc เปเบฅเบฐ func, เบเบฒเบกเบฅเปเบฒเบเบฑเบ. arguments เปเบเปเบเบทเบเบฅเบฐเบเบธเปเบงเปเปเบเบงเบปเบเปเบฅเบฑเบ. เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบชเบฒเบญเบทเปเบเป.
เบเบนเปเบเบฐเบเบญเบเบเบฒเบ เบเบฒเบเบเบฑเบเบเบทเบเบกเบฒ เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบปเปเบเบเบทเบเบเปเบฒเบเบฒเบเบเบฑเบเบเบฑเบ, เบเบฐเบเบดเบเบฑเบเบเบฒเบ เบเบฑเบเบเปเบญเบ เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบญเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบ / เบซเบเปเบฒเบเบตเป (เบเปเบฒเบกเบฑเบเบขเบนเปเบเบญเบ loops).
เบฅเบฐเบซเบฑเบเบเบปเบงเบขเปเบฒเบ:
...
func summ(a, b):
return a + b
end
proc main():
println(summ(inputln(), inputln()))
end
เบเบฒเบเบญเบญเบเปเบเบเบเบตเปเบฎเบญเบเบฎเบฑเบ
- Loops: for..end, while..end, เบเบปเบเบเปเบงเบฒ..end
- เปเบเบทเปเบญเบเปเบ: เบเปเบฒ..[else..]เบชเบดเปเบเบชเบธเบ, เบเปเบฝเบ.
- เบงเบดเบเบตเบเบฒเบ: proc ():... end, func ():... end
- Label & goto: :, เปเบเบ
- Enumerations เปเบฅเบฐ array เบเบปเบเบเบตเป.
เบเบปเบงเปเบ
เบเบฑเบเปเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบงเบเบกเบฑเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เบซเบผเบทเบเปเบฒเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบฝเบ var เบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบงเบเบกเบฑเบ.
เบเบปเบงเบขเปเบฒเบเบฅเบฐเบซเบฑเบ:
a ?= 10
b ?= a + 20
var a = 10, b = a + 20
เบฎเบญเบเบฎเบฑเบเบเบปเบงเปเบเบเบปเปเบงเปเบฅเบ เปเบฅเบฐเบเปเบญเบเบเบดเปเบ.
OOP
เปเบฅเปเบง, เบเบงเบเปเบฎเบปเบฒเบกเบฒเบฎเบญเบเบซเบปเบงเบเปเปเบเบตเปเปเบเบเบเบตเปเบชเบธเบ. Mash เบฎเบญเบเบฎเบฑเบเบเบธเบเปเบเบเปเบเบเบเบฒเบเบเบฝเบเปเบเบฃเปเบเบฃเบกเปเบเบเบงเบฑเบเบเบธ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบซเปเบญเบเบฎเบฝเบ, เบกเปเบฅเบฐเบเบปเบ, polymorphism (เบฅเบงเบกเบเบฑเบเปเบเบเปเบเบทเปเบญเบเปเบซเบง), เบเบฒเบเบชเบฐเบเปเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเปเบเบทเปเบญเบเปเบซเบงเปเบฅเบฐ introspection (เปเบเบฑเบก).
เปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฐเบเบธเปเบ, เบกเบฑเบเบเบตเบเบงเปเบฒเบเบฝเบเปเบเปเปเบซเปเบเบปเบงเบขเปเบฒเบเบฅเบฐเบซเบฑเบ.
เบซเปเบญเบเบฎเบฝเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบกเบฑเบ:
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.
เบกเปเบฅเบฐเบเบปเบเปเบฅเบฐ polymorphism:
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.
เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฝเบงเบเบฑเบ polymorphism เปเบเบเปเบเบทเปเบญเบเปเบซเบง? เปเบกเปเบเปเบฅเปเบง, เบเบตเปเปเบกเปเบเบเบฒเบเบชเบฐเบเปเบญเบ!:
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.
เบเบญเบเบเบตเปเปเบซเปเปเบฎเบปเบฒเปเบเปเปเบงเบฅเบฒเบชเบฑเปเบเปเปเบเบทเปเบญ introspect เบชเปเบฒเบฅเบฑเบเบเบธเบเบเปเบฒเบเบตเปเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบซเปเบญเบเบฎเบฝเบ:
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
เบเบปเบเปเบเปเบฎเบฑเบ: เบเบงเบฒเบกเบเบดเบ, เบเบงเบฒเบกเบเบดเบ.
เบเปเบฝเบงเบเบฑเบเบเบนเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเบกเบญเบเบซเบกเบฒเบเปเบฅเบฐเบเบปเบงเบเบตเปเบขเปเบฒเบเบเบฑเบเปเบเบ
เปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ ?= เบเบทเบเปเบเปเปเบเบทเปเบญเบเบณเบเบปเบเบเบปเบงเบเปเบฝเบเบเบปเบงเบเบตเปเปเบเบซเบฒเบเปเบฒเปเบเปเปเบงเบเบเบงเบฒเบกเบเบณ.
The = operator เบเปเบฝเบเบเปเบฒเปเบเปเปเบงเบเบเบงเบฒเบกเบเบณเปเบเบเปเบเปเบเบปเบงเบเบตเปเบเบฒเบเบเบปเบงเปเบ.
เปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบเปเบฅเบฑเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบปเบงเบเบตเปเบขเปเบฒเบเบเบฑเบเปเบเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบเบตเปเบกเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเปเบเบเบฒเบชเบฒเปเบเบทเปเบญเปเบซเปเบเบงเบเบกเบฑเบเบกเบตเบขเบนเป.
@ โ เปเบญเบปเบฒเบเบปเบงเบเบตเปเบเบตเปเบเบฑเบเปเบเบเปเบเบซเบฒเบเบปเบงเปเบ.
? โ เปเบเปโเบฎเบฑเบโเบเบปเบงโเบเปเบฝเบโเปเบเบโเบเบปเบงโเบเบตเป.
@= โ เบเบณเบเบปเบเบเปเบฒเปเบซเปเบเบฑเบเบเบปเบงเปเบเปเบเบเบเบปเบงเบเบตเปเบเบตเปเบเบฑเบเปเบเบเปเบซเปเบเบฑเบเบกเบฑเบ.
เบฅเบฐเบซเบฑเบเบเบปเบงเบขเปเบฒเบ:
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.
เบเบฐเบเบฒเบเบฒเบก..[เบเบฑเบ..][เบชเบธเบเบเปเบฒเบ..]เบเบปเบ
เบฅเบฐเบซเบฑเบเบเบปเบงเบขเปเบฒเบ:
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. เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก runtime เบเบญเบเบเปเบญเบเบเปเปเบกเบต JIT compiler, เบเบฑเปเบเบเบฑเปเบเปเบเปเบเปเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเบฐเบเบธเบเบฑเบเบเบตเปเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเปเบเปเบเบเบฑเบเบเบฑเบ Python เปเบเบปเปเบฒเบเบฑเปเบ. เบเปเบญเบเบซเบงเบฑเบเบงเปเบฒเบเปเบญเบเบเบฐเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบก JIT เปเบเบเบญเบตเบเปเบชเป GraalVM เบซเบผเบท LLVM.
เบเบฑเบเปเบเบฑเบเบกเปเบฝเบ
เบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบดเปเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบกเปเบเบเบเบฒเบเบเบปเบงเบเปเบฒเบเปเบญเบ.
เบเบญเบเปเบเบเบตเปเบญเปเบฒเบเบเบปเบเบเบปเบ เบเปเบฒเปเบเบปเปเบฒเปเบฎเบฑเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com