เดนเดพเดธเตโ€Œเด•เต†เดฒเตเดฒเดฟเดจเตŠเดชเตเดชเด‚ เดซเตบเดธเดฟเดฏเต† เดซเตบโ€Œเด•เตเดทเดฃเดฒเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต: เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เดฎเดคเตเดธเดฐเดคเตเดคเดฟเตฝ เดธเต†เดฑเต‹เด•เต†เตฝ เดŽเด™เตเด™เดจเต† เดตเดฟเดœเดฏเดฟเดšเตเดšเต

เดŸเต†เดฒเด—เตเดฐเดพเด‚ เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เต‡เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเดพเด•เตเด‚ เดŸเตบ เดฌเตเดฒเต‹เด•เตเด•เตโ€Œเดšเต†เดฏเดฟเตป เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เด‚ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดชเต‹เด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเตเดณเตเดณ เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดตเดพเตผเดคเตเดค เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเดทเตเดŸเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ เด’เดฐเต เดฎเดคเตเดธเดฐเด‚ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต เดˆ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเดพเดฏเดฟ เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต.

เดตเดฒเดฟเดฏ เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เดชเดฆเตเดงเดคเดฟเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดตเดฟเดชเตเดฒเดฎเดพเดฏ เด…เดจเตเดญเดตเดชเดฐเดฟเดšเดฏเดฎเตเดณเตเดณ เดธเต†เดฑเต‹เด•เต†เตฝ เดŸเต€เดฎเดฟเดจเต เดฎเดพเดฑเดฟเดจเดฟเตฝเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ. เดžเด™เตเด™เตพ เด…เดžเตเดšเต เดœเต€เดตเดจเด•เตเด•เดพเดฐเต† เดฎเดคเตเดธเดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเดฏเต‹เด—เดฟเดšเตเดšเต, เดฐเดฃเตเดŸเดพเดดเตเดšเดฏเตเด•เตเด•เต เดถเต‡เดทเด‚ เด…เดตเตผ เด…เดคเดฟเตฝ (เด‡เตป) เดฎเดฟเดคเดฎเดพเดฏ เดฑเดพเตปเดกเด‚ เดตเดฟเดณเดฟเดชเตเดชเต‡เดฐเต เดธเต†เด•เตเดธเดฟ เดšเดพเดฎเดฟเดฒเดฟเดฏเตป เดŽเดจเตเดจ เดชเต‡เดฐเดฟเตฝ เด’เดจเตเดจเดพเด‚ เดธเตเดฅเดพเดจเด‚ เดจเต‡เดŸเดฟ. เด…เดตเตผ เด…เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดคเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚. เด…เดŸเตเดคเตเดค เดชเดคเตเดคเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฐเดธเด•เดฐเดฎเดพเดฏ เด•เดฅเดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดคเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚.

เดŽเดจเตเดจเดพเตฝ เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚.

เดฎเดคเตเดธเดฐเดตเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดตเตเดฏเดตเดธเตเดฅเด•เดณเตเด‚

เด…เดคเดฟเดจเดพเตฝ, เดชเด™เตเด•เต†เดŸเตเด•เตเด•เตเดจเตเดจเดตเดฐเตเดŸเต† เดชเตเดฐเดงเดพเดจ เดšเตเดฎเดคเดฒเด•เตพ เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•, เด…เดคเตเดชเต‹เดฒเต† เดคเดจเตเดจเต† TON เด†เดตเดพเดธเดตเตเดฏเดตเดธเตเดฅ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด• เดŽเดจเตเดจเดฟเดตเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดธเต†เดชเตเดฑเตเดฑเด‚เดฌเตผ 24 เดฎเตเดคเตฝ เด’เด•เตเดŸเต‹เดฌเตผ 15 เดตเดฐเต† เดจเดŸเดจเตเดจ เดฎเดคเตเดธเดฐเด‚ เดจเดตเด‚เดฌเตผ 15 เดจเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดซเดฒเด‚ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเดคเต. เดตเดณเดฐเต†เด•เตเด•เดพเดฒเดฎเดพเดฏเดฟ, เดˆ เดธเดฎเดฏเดคเตเดคเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเดฒเต† VoIP เด•เต‹เดณเตเด•เดณเตเดŸเต† เด—เตเดฃเดจเดฟเดฒเดตเดพเดฐเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ C++ เดฒเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เดฐเต‚เดชเด•เตฝเดชเตเดชเดจเดฏเตเด‚ เดตเดฟเด•เดธเดจเดตเตเด‚ เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดš เดฎเดคเตเดธเดฐเด™เตเด™เดณเตเดŸเต† เดซเดฒเด™เตเด™เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเดจเตเด‚ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเดจเต เด•เดดเดฟเดžเตเดžเต.

เดธเด‚เด˜เดพเดŸเด•เตผ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดš เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต เดฎเดฟเด•เดšเตเดš เด•เดฐเดพเดฑเตเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต. เด…เดตเดฏเดฟเดฒเตŠเดจเตเดจเดฟเดจเต, เดžเด™เตเด™เตพ TON เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เดžเด™เตเด™เดณเตเดŸเต† เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผ TON-เดจเดพเดฏเดฟ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเดคเตเด‚ เดนเดพเดธเตเด•เต†เดฒเตเดฒเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเตเดฎเดพเดฏ เด’เดฐเต เดชเตเดคเดฟเดฏ เดญเดพเดทเดฏเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ.

เด’เดฐเต เดซเด™เตเดทเดฃเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดท เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเต เด†เด•เดธเตเดฎเดฟเด•เดฎเดฒเตเดฒ. เดžเด™เตเด™เดณเตเดŸเต† เด•เต‹เตผเดชเตเดชเดฑเต‡เดฑเตเดฑเต เดฌเตเดฒเต‹เด—เต เดซเด™เตเดทเดฃเตฝ เดญเดพเดทเด•เดณเตเดŸเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดค เด’เดฐเต เดตเดฒเดฟเดฏ เด…เดคเดฟเดถเดฏเต‹เด•เตเดคเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดฐเตเดคเตเดจเตเดจเดคเต เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต†เดจเตเดจเตเด‚ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เด…เดงเดฟเดทเตโ€Œเด เดฟเดค เดญเดพเดทเด•เดณเต‡เด•เตเด•เดพเตพ เดžเด™เตเด™เตพ เดชเตŠเดคเตเดตเต† เด…เดต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเดฑเตเดฃเตเดŸเต. เดตเดดเดฟเดฏเดฟเตฝ, เด…เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฑเดฟเดœเดฟเดจเตฝ.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดžเด™เตเด™เตพ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เดชเต‹เดฒเตเด‚ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเดคเต?

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดชเต†เดทเตเดฏเดฒเตˆเดธเต‡เดทเตป เดจเดฟเดฒเดตเดพเดฐเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเตเด‚ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดตเตเดฎเดพเดฏ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดพเดฃเต, เด…เดคเต เดชเตเดฐเดคเตเดฏเต‡เด• เดตเตˆเดฆเด—เตเดงเตเดฏเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเด‚ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดเดŸเดฟ เดธเดฎเต‚เดนเดคเตเดคเดฟเดจเต เดถเดพเดธเตเดคเตเดฐเต€เดฏ เดฎเต‚เดฒเตเดฏเดฎเตเดณเตเดณเดคเตเดฎเดพเดฃเต. เดžเด™เตเด™เตพ เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เดตเดฟเด•เดธเดจเดคเตเดคเต† เดถเด•เตเดคเดฎเดพเดฏเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดœเดจเด•เต€เดฏเดตเตฝเด•เตเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดเตผเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเตผ เดธเดฏเตปเดธเต, เด—เดฃเดฟเดคเดถเดพเดธเตเดคเตเดฐ เดฎเต‡เด–เดฒเดฏเดฟเดฒเต† เดชเตเดฐเดฎเตเด– เดฑเดทเตเดฏเตป เดธเตผเดตเด•เดฒเดพเดถเดพเดฒเด•เดณเตเดฎเดพเดฏเดฟ เดธเดนเด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดฎเดคเตเดธเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดฐเดธเด•เดฐเดฎเดพเดฏ เดœเต‹เดฒเดฟเด•เดณเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเต† เดชเด™เตเด•เดพเดณเดฟเดคเตเดคเดตเตเด‚ เด’เดฐเต เดฎเดฟเด•เดšเตเดš เดชเตเดฐเดšเต‹เดฆเดจเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดธเดฎเตเดฎเดพเดจ เดซเดฃเตเดŸเต เด’เดฐเต เด…เดงเดฟเด• เดชเตเดฐเต‹เดคเตเดธเดพเดนเดจเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ. ๐Ÿ™‚

เดŸเตบ เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เด—เดตเต‡เดทเดฃเด‚

เดฌเตเดฒเต‹เด•เตเด•เตโ€Œเดšเต†เดฏเดฟเตป, เด†เตผเดŸเตเดŸเดฟเดซเดฟเดทเตเดฏเตฝ เด‡เดจเตเดฑเดฒเดฟเดœเตปเดธเต, เดฎเต†เดทเต€เตป เดฒเต‡เดฃเดฟเด‚เด—เต เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต† เดชเตเดคเดฟเดฏ เดธเด‚เดญเดตเดตเดฟเด•เดพเดธเด™เตเด™เตพ เดžเด™เตเด™เตพ เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดžเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด“เดฐเต‹ เดฎเต‡เด–เดฒเดฏเดฟเดฒเตเด‚ เด•เดพเดฐเตเดฏเดฎเดพเดฏ เด’เดฐเต เดฑเดฟเดฒเต€เดธเต เดชเต‹เดฒเตเด‚ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เดฎเดคเตเดธเดฐเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เดดเต‡เด•เตเด•เตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดŸเต€เดฎเดฟเดจเต เด†เดถเดฏเด™เตเด™เตพ เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต เดŸเตบ เดตเต†เดณเตเดณ เดชเต‡เดชเตเดชเตผ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, TON-เดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต, เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเตเดฑเต† เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเด‚ เดฏเดฅเดพเตผเดคเตเดฅ เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเตเด‚ เดžเด™เตเด™เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดคเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เด†เดฆเตเดฏ เด˜เดŸเตเดŸเด‚ เดตเดณเดฐเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต - เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเดฑเต† เดธเดฎเด—เตเดฐเดฎเดพเดฏ เดชเด เดจเด‚ เดธเตˆเดฑเตเดฑเต เด’เดชเตเดชเด‚ เด…เด•เดคเตเดคเต‡เด•เตเด•เตเด‚ เดชเดฆเตเดงเดคเดฟ เดถเต‡เด–เดฐเด™เตเด™เตพ.

เดฎเดคเตเดธเดฐเด‚ เด†เดฐเด‚เดญเดฟเดšเตเดšเดชเตเดชเต‹เดดเต‡เด•เตเด•เตเด‚, เด•เต‹เดกเต เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดธเดฎเดฏเด‚ เดฒเดพเดญเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เดŽเดดเตเดคเดฟเดฏ เด’เดฐเต เด—เตˆเดกเดฟเดจเต‹ เดธเด‚เด—เตเดฐเดนเดฎเต‹ เดคเดฟเดฐเดฏเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดดเดฟ. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด‡เดคเต เดซเดฒเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เดจเตฝเด•เดฟเดฏเดฟเดฒเตเดฒ - เด‰เดฌเตเดฃเตเดŸเตเดตเดฟเตฝ เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด’เดดเดฟเด•เต†, เดฎเดฑเตเดฑเต เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเตเด•เดณเตŠเดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ.

เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดคเดจเตเดจเต† เดจเดจเตเดจเดพเดฏเดฟ เด—เดตเต‡เดทเดฃเด‚ เดšเต†เดฏเตเดคเต, เดชเด•เตเดทเต‡ เดšเดฟเดฒ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดฒ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•เดฏเตเด‚ เด…เดฎเต‚เตผเดคเตเดค เด†เดถเดฏเด™เตเด™เดณเตเดŸเต† เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดฟเดตเดฐเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เดจเดŸเดชเตเดชเดพเด•เตเด•เตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต.

เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด’เดฐเต เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเต† เดŽเด™เตเด™เดจเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ, เดŸเตบ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเดพเดฏเดฟ เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดถเตเดฐเดฆเตเดง เดคเดฟเดฐเดฟเด•เตเด•เดพเดจเดพเดฃเต เดธเดพเดงเตเดฏเดค.

เดจเดฟเด•เตเดธเต: เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

เดธเต†เดฑเต‹เด•เต†เดฒเดฟเตฝ เดžเด™เตเด™เตพ เดตเดฒเดฟเดฏ เด†เดฐเดพเดงเด•เดฐเดพเดฃเต เดจเดฟเด•เตเดธเต. เดžเด™เตเด™เตพ เด…เดตเดฐเต‹เดŸเตŠเดชเตเดชเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดจเดฟเด•เตเดธเตเด“เดชเตเดธเต, เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เดณเตเดŸเต† เดŽเดฒเตเดฒเดพ เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต เดจเดฟเด•เตเดธเต‹เดธเต. เด‡เดคเดฟเดจเต เดจเดจเตเดฆเดฟ, เดžเด™เตเด™เดณเตเดŸเต† เดŽเดฒเตเดฒเดพ เดฌเดฟเตฝเดกเตเด•เดณเตเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเด‚ เดจเดฟเด•เตเดธเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดเดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เด†เดฐเด‚เดญเดฟเดšเตเดšเต TON เด…เดธเด‚เดฌเตเดฒเดฟเด•เตเด•เตเดณเตเดณ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเต‹เดŸเตเด•เต‚เดŸเดฟเดฏ เดจเดฟเด•เตเดธเต เด“เดตเตผเดฒเต‡. เด…เดคเดฟเดจเตเดฑเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต†, TON เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเดฃเต:

$ cd ~/.config/nixpkgs/overlays && git clone https://github.com/serokell/ton.nix
$ cd /path/to/ton/repo && nix-shell
[nix-shell]$ cmakeConfigurePhase && make

เดจเดฟเด™เตเด™เตพ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตŠเดจเตเดจเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒเต†เดจเตเดจ เด•เดพเดฐเตเดฏเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เดจเดฟเด™เตเด™เตพ NixOS, Ubuntu, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ macOS เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฒเตเด‚, เดจเดฟเด•เตโ€Œเดธเต เดจเดฟเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดŽเดฒเตเดฒเดพเด‚ เดฎเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดšเต†เดฏเตเดฏเตเด‚.

TON-เดจเตเดณเตเดณ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต

TON เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดฒเต† เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เต‹เตบเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเต เด•เต‹เดกเต TON เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดฟเตฝ (TVM) เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเดฑเตเดฑเต เดฎเดฟเด•เตเด• เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเตเด•เดณเต‡เด•เตเด•เดพเดณเตเด‚ เดŸเดฟเดตเดฟเดŽเด‚ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดตเดณเดฐเต† เดฐเดธเด•เดฐเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดคเดฏเตเด‚ เด‰เดฃเตเดŸเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเดฟเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ เดคเตเดŸเตผเดšเตเดšเด•เตพ ะธ เดกเดพเดฑเตเดฑเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เตพ.

เด•เต‚เดŸเดพเดคเต†, TON เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด†เตบเด•เตเดŸเตเดŸเดฟเด•เตพ เดฎเต‚เดจเตเดจเต เดชเตเดคเดฟเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเด•เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต:

เด…เดžเตเดšเต เดธเดพเดฆเตƒเดถเตเดฏเดฎเตเดณเตเดณ เด’เดฐเต เดธเดพเตผเดตเดคเตเดฐเดฟเด• เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดพเดฃเต เดซเต‹เตผเดคเตเดคเต. เดŸเดฟเดตเดฟเดŽเดฎเตเดฎเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเดพเดฃเต เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเตเดฑเต† เดธเต‚เดชเตเดชเตผ เด•เดดเดฟเดตเต.

FunC เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เต‹เตบเดŸเตเดฐเดพเด•เตเดŸเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดพเดฃเต C เด•เต‚เดŸเดพเดคเต† เดฎเดฑเตเดฑเตŠเดฐเต เดญเดพเดทเดฏเดฟเดฒเต‡เด•เตเด•เต เดธเดฎเดพเดนเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต - เดซเดฟเดซเตเดฑเตเดฑเต เด…เดธเด‚เดฌเตเดฒเตผ.

เด…เดžเตเดšเดพเดฎเดคเตเดคเต† เด…เดธเด‚เดฌเตเดฒเตผ โ€” TVM-เดจเดพเดฏเดฟ เดฌเตˆเดจเดฑเดฟ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เด•เต‹เดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดซเตˆเดซเต เดฒเตˆเดฌเตเดฐเดฑเดฟ. เด…เดžเตเดšเดพเดฎเดคเตเดคเต† เด…เดธเด‚เดฌเตเดฒเดฑเดฟเดจเต เด’เดฐเต เด•เด‚เดชเตˆเดฒเตผ เด‡เดฒเตเดฒ. เดˆ เดŽเด‚เดฌเดกเดกเต เดกเตŠเดฎเต†เดฏเตเตป เดธเตเดชเต†เดธเดฟเดซเดฟเด•เต เดฒเดพเด‚เด—เตเดตเต‡เดœเต (eDSL).

เดžเด™เตเด™เดณเตเดŸเต† เดฎเดคเตเดธเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดฏเดคเตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚ เดจเต‹เด•เตเด•เต‡เดฃเตเดŸ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต.

เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเต เดšเดพเดจเตฝ

เดฐเดฃเตเดŸเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเดฟเด•เดšเตเดš เด•เดฐเดพเดฑเดพเดฃเต เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเต เดšเดพเดจเตฝ. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพ เดชเดฃเด‚ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ (เด•เดฎเตเดฎเต€เดทเตป เด‡เดฒเตเดฒ), เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดธเดฎเดฏเดตเตเด‚ (เด…เดŸเตเดคเตเดค เดฌเตเดฒเต‹เด•เตเด•เต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ). เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเดฐ เดšเต†เดฑเตเดคเตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเดฐ เดคเดตเดฃเดฏเตเด‚ เด†เด•เดพเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด•เด•เตเดทเดฟเด•เตพ เดชเดฐเดธเตเดชเดฐเด‚ เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด…เดจเตเดคเดฟเดฎ เดธเต†เดฑเตเดฑเดฟเตฝเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เดจเตเดฏเดพเดฏเด‚ เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เด‰เดฑเดชเตเดชเตเดจเตฝเด•เตเดจเตเดจเต.

เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเต เดžเด™เตเด™เตพ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. เดฐเดฃเตเดŸเต เด•เด•เตเดทเดฟเด•เตพเด•เตเด•เต เด’เดชเตเดชเดฟเดŸเตเดŸ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚, เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เดฐเดฃเตเดŸเต เดจเดฎเตเดชเดฑเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต-เด“เดฐเต‹ เด•เด•เตเดทเดฟเดฏเตเด‚ เด…เดŸเดšเตเดš เดฎเตเดดเตเดตเตป เดคเตเด•เดฏเตเด‚. เดˆ เดฐเดฃเตเดŸเต เดจเดฎเตเดชเดฑเตเด•เดณเตเด‚ เด‡เดคเตเดชเต‹เดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดตเต†เด•เตเดฑเตเดฑเตผ เด•เตเดฒเต‹เด•เตเด•เต เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดตเดฟเดคเดฐเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเดฟเตฝ, เด‡เดŸเดชเดพเดŸเตเด•เดณเดฟเตฝ "เดฎเตเดฎเตเดชเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต" เด•เตเดฐเดฎเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•. เดˆ เดกเดพเดฑเตเดฑ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดคเต เดชเตŠเดฐเตเดคเตเดคเด•เตเด•เต‡เดŸเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดฐเดพเดฑเดฟเดจเต เด•เดดเดฟเดฏเตเด‚.

เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดˆ เด†เดถเดฏเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด’เดฐเต เดจเดฎเตเดชเตผ เดฎเดคเดฟ, เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเตเด‚ เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเต, เด•เดพเดฐเดฃเด‚ เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚. เด•เต‚เดŸเดพเดคเต†, เด“เดฐเต‹ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดฒเตเด‚ เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเต เดคเตเด• เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดžเด™เตเด™เตพ เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เด…เดคเดฟเดฒเตเดฒเดพเดคเต†, เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดธเดจเตเดฆเต‡เดถเด‚ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดŽเดฒเตเดฒเดพ เดคเตเด•เดฏเตเด‚ เด…เดจเตเดคเดฟเดฎ เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเตเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดจเดทเตเดŸเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเดจเดฟเดŸเดฏเดฟเดฒเตเดฒ.

เดžเด™เตเด™เดณเตเดŸเต† เด†เดถเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดฒเดณเดฟเดคเดตเตเด‚ เดธเด‚เด•เตเดทเดฟเดชเตเดคเดตเตเดฎเดพเดฏ เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเต เดšเดพเดจเตฝ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดžเด™เตเด™เตพ เดจเต‹เด•เตเด•เดฟ. เด…เดคเดฟเดถเดฏเด•เดฐเดฎเต†เดจเตเดจเต เดชเดฑเดฏเดŸเตเดŸเต†, เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต†เดฃเตเดฃเด‚ เดฎเดพเดคเตเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ:

  1. เดตเดฟเดตเดฐเดฃเด‚ เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดธเดฎเต€เดชเดจเด‚, เด’เดฐเต เดเด•เดฆเดฟเดถ เดšเดพเดจเดฒเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเด‚.
  2. เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเตฝ, เด‡เดคเต เดžเด™เตเด™เดณเตเดŸเต‡เดคเต เดชเต‹เดฒเต† เด…เดคเต‡ เด†เดถเดฏเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเตŠเดคเตเดตเดพเดฏ เด•เตƒเดคเตเดฏเดคเดฏเตเด‚ เดตเตˆเดฐเตเดฆเตเดงเตเดฏ เดชเดฐเดฟเดนเดพเดฐ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเด™เตเด™เดณเตเด‚ เดชเต‹เดฒเตเดณเตเดณ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เดชเดฒ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเตเด‚ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เดพเดคเต†.

เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เด…เตผเดคเตเดฅเดฎเตเดฃเตเดŸเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ, เด…เดคเดฟเดจเตเดฑเต† เด•เตƒเดคเตเดฏเดคเดฏเตเด•เตเด•เต เดชเตเดฐเดคเตเดฏเต‡เด• เดถเตเดฐเดฆเตเดง เดจเตฝเด•เดฟ. เดจเดฟเดฐเดตเดงเดฟ เด†เดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เต เดถเต‡เดทเด‚, เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เดคเดฏเตเดฏเดพเดฑเดพเดฏเดฟ, เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เด•เดดเดฟเดฏเตเด‚. เด…เดตเดณเต† เดจเต‡เดพเด•เตเด•เต.

เดžเด™เตเด™เตพ เด•เดฐเดพเตผ FunC-เตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ, เดธเด‚เด˜เดพเดŸเด•เตผ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดคเดคเตเดชเต‹เดฒเต†, เดžเด™เตเด™เดณเตเดŸเต† เด•เดฐเดพเดฑเตเดฎเดพเดฏเดฟ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดžเด™เตเด™เตพ เดŽเดดเตเดคเดฟ. เดžเด™เตเด™เดณเตเดŸเต† CLI-เดฏเตโ€Œเด•เตเด•เต เดฎเดฑเตเดฑเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดญเดพเดท เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เดคเต เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด•เดพเดฃเดพเตป เดซเดฟเดฑเตเดฑเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดธเดคเตเดฏเด‚ เดชเดฑเดžเตเดžเดพเตฝ, เดซเดฟเดซเตเดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดš เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เด‰เดณเตเดณ เดœเดจเดชเตเดฐเดฟเดฏเดตเตเด‚ เดธเดœเต€เดตเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏ เดญเดพเดทเด•เดณเต‡เด•เตเด•เดพเตพ เดˆ เดญเดพเดท เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเดจเตเดณเตเดณ เดถเด•เตเดคเดฎเดพเดฏ เด•เดพเดฐเดฃเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเดฟเดฒเตเดฒ. เด’เดฐเต เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด…เดงเดฟเดทเตโ€Œเด เดฟเดค เดญเดพเดทเดฏเดฟเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เด…เดธเตเด–เด•เดฐเดฎเดพเดฃเต, เด•เดพเดฐเดฃเด‚ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเตเดณเตเดณเดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดคเดฒเดฏเดฟเตฝ เดจเดฟเดฐเดจเตเดคเดฐเด‚ เดธเต‚เด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เด•เด‚เดชเตˆเดฒเตผ เด‡เดคเดฟเดจเต เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดซเดฟเดซเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดจเดฟเดฒเดจเดฟเตฝเดชเตเดชเดฟเดจเตเดณเตเดณ เดเด• เดจเตเดฏเดพเดฏเด‚ เดซเดฟเดซเตเดฑเตเดฑเต เด…เดธเด‚เดฌเตเดฒเดฑเดฟเดจเตเดณเตเดณ เด’เดฐเต เดนเต‹เดธเตเดฑเตเดฑเต เดญเดพเดท เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เด…เดคเดฟเดจเตเดฑเต† เดชเด™เตเด•เต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต. เดŽเดจเตเดจเดพเตฝ เดŸเดฟเดตเดฟเดŽเด‚ เด…เดธเด‚เดฌเตเดฒเตผ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดญเดพเดทเดฏเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดฒเตเดฒเต‡?

TVM เดนเดพเดธเตเด•เต†เตฝ eDSL

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เดณเตเดŸเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดฎเดฟเด•เดšเตเดš เด•เดฐเดพเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดžเด™เตเด™เตพ เด’เดฐเต เดฎเตพเดŸเตเดŸเดฟ-เดธเดฟเด—เตเดจเต‡เดšเตเดšเตผ เดตเดพเดฒเดฑเตเดฑเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เดŽเดจเตเดจเดพเตฝ FunC-เตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดŽเดดเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเต‹เดฑเดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต. เด•เตเดฑเดšเตเดšเต เดฐเดธเด‚ เดšเต‡เตผเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต, เด…เดคเต เดŸเดฟเดตเดฟเดŽเดฎเตเดฎเดฟเดจเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด…เดธเด‚เดฌเตเดฒเดฟ เดญเดพเดทเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดซเดฟเดซเตเดฑเตเดฑเต เด…เดธเด‚เดฌเตเดฒเตผ เดชเต‹เดฒเต†, เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดคเดฟเดฏ เดญเดพเดท เด‰เตพเดšเตเดšเต‡เตผเดคเตเดคเดคเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดซเดฟเดซเตเดฑเตเดฑเดฟเดจเต เดชเด•เดฐเด‚ เดžเด™เตเด™เตพ เดนเต‹เดธเตเดฑเตเดฑเดพเดฏเดฟ เดนเดพเดธเตเด•เดฒเดฟเดจเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เด‡เดคเต เด…เดคเดฟเดจเตเดฑเต† เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดฏเต‹เดœเดจเด‚ เดจเต‡เดŸเดพเตป เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดชเดฟเดถเด•เดฟเดจเตเดฑเต† เดตเดฟเดฒ เดตเดณเดฐเต† เด‰เดฏเตผเดจเตเดจเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดŸเตˆเดชเตเดชเดฟเด‚เด—เต, เดžเด™เตเด™เดณเตเดŸเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เด’เดฐเต เดตเดฒเดฟเดฏ เดจเต‡เดŸเตเดŸเดฎเดพเดฃเต.

เดŸเดฟเดตเดฟเดŽเด‚ เด…เดธเด‚เดฌเตเดฒเตผ เดนเดพเดธเตโ€Œเด•เต†เดฒเตเดฒเดฟเตฝ เดŽเด‚เดฌเดกเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต†เดฏเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เด…เดคเดฟเตฝ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดตเดพเดฒเดฑเตเดฑเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ. เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸ เดšเดฟเดฒ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด‡เดคเดพ:

  • เดˆ เด•เดฐเดพเดฑเดฟเตฝ เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเตป เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดทเตเดŸเดฎเตเดณเตเดณเดคเตเดฐเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดจเดฟเด™เตเด™เตพ เดนเต‹เดธเตเดฑเตเดฑเต เดญเดพเดทเดฏเดฟเตฝ (เด…เดคเดพเดฏเดคเต เดนเดพเดธเตโ€Œเด•เต†เตฝ) เด’เดฐเต เดชเตเดคเดฟเดฏ เดซเด‚เด—เตโ€Œเดทเตป เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดคเต เดŸเดฟเดตเดฟเดŽเดฎเตเดฎเดฟเตฝ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฆเดฟเดจเดšเดฐเตเดฏเดฏเดพเดฏเดฟ เดฎเดพเดฑเดฃเต‹ เด…เดคเต‹ เด•เต‹เตพ เดชเต‹เดฏเดฟเดจเตเดฑเดฟเตฝ เด‡เตปเดฒเตˆเตป เดšเต†เดฏเตเดฏเดฃเต‹ เดŽเดจเตเดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเตป เดžเด™เตเด™เดณเตเดŸเต† eDSL เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.
  • Haskell เดชเต‹เดฒเต†, เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพเด•เตเด•เต เด•เด‚เดชเตˆเตฝ เดธเดฎเดฏเดคเตเดคเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ เดคเดฐเด™เตเด™เดณเตเดฃเตเดŸเต. เดžเด™เตเด™เดณเตเดŸเต† eDSL-เตฝ, เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเดจเตเดฑเต† เด‡เตปเดชเตเดŸเตเดŸเต เดคเดฐเด‚ เดซเด‚เด—เตโ€Œเดทเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเตเดฑเต† เดคเดฐเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด•เต‹เดณเดฟเดจเต เดถเต‡เดทเด‚ เด‰เตฝเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเตเดฑเต† เดคเดฐเดฎเดพเดฃเต เดซเดฒ เดคเดฐเด‚.
  • เด•เต‹เดกเดฟเดจเต เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เดณเตเดฃเตเดŸเต stacktype, เด•เต‹เตพ เดชเต‹เดฏเดฟเดจเตเดฑเดฟเตฝ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดคเดฐเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฏเดฅเดพเตผเดคเตเดฅ เดตเดพเดฒเดฑเตเดฑเต เด•เดฐเดพเดฑเดฟเตฝ เด‡เดต เดตเต†เดฑเตเด‚ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เดณเตเดŸเต† eDSL-เตฝ เด…เดต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด•เต‹เดกเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฃเต, เด•เด‚เดชเตˆเตฝ เดธเดฎเดฏเดคเตเดคเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด‚. เด•เต‹เดกเต เดฎเดพเดฑเตเด•เดฏเตเด‚ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดคเดฐเด‚ เดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเดพเตฝ เดชเตเดฐเดถเตเดจเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดกเดตเดฒเดชเตเดชเดฑเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเต‹ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเต‹ เด†เดฏเดฟ เด…เดต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด…เดคเตเดคเดฐเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เตพ เดฑเตบเดŸเตˆเด‚ เดชเตเดฐเด•เดŸเดจเดคเตเดคเต† เดฌเดพเดงเดฟเด•เตเด•เดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด…เดตเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดŸเดฟเดตเดฟเดŽเด‚ เด•เต‹เดกเต เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.
  • เด‡เดคเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดฐเดฃเตเดŸเดพเดดเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เดŽเดดเตเดคเดฟเดฏ เด’เดฐเต เดชเตเดฐเต‹เดŸเตเดŸเต‹เดŸเตˆเดชเตเดชเต เด†เดฃเต, เด…เดคเดฟเดจเดพเตฝ เดชเดฆเตเดงเดคเดฟเดฏเดฟเตฝ เด‡เดจเดฟเดฏเตเด‚ เด’เดฐเตเดชเดพเดŸเต เดœเต‹เดฒเดฟเด•เตพ เดšเต†เดฏเตเดฏเดพเดจเตเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด•เต‹เดกเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจ เด•เตเดฒเดพเดธเตเด•เดณเตเดŸเต† เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเตเด‚ เดธเตเดตเดฏเดฎเต‡เดต เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดฃเด‚.

เดžเด™เตเด™เดณเตเดŸเต† eDSL-เตฝ เด’เดฐเต เดฎเตพเดŸเตเดŸเดฟเดธเดฟเด—เต เดตเดพเดฒเดฑเตเดฑเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต:

main :: IO ()
main = putText $ pretty $ declProgram procedures methods
  where
    procedures =
      [ ("recv_external", decl recvExternal)
      , ("recv_internal", decl recvInternal)
      ]
    methods =
      [ ("seqno", declMethod getSeqno)
      ]

data Storage = Storage
  { sCnt :: Word32
  , sPubKey :: PublicKey
  }

instance DecodeSlice Storage where
  type DecodeSliceFields Storage = [PublicKey, Word32]
  decodeFromSliceImpl = do
    decodeFromSliceImpl @Word32
    decodeFromSliceImpl @PublicKey

instance EncodeBuilder Storage where
  encodeToBuilder = do
    encodeToBuilder @Word32
    encodeToBuilder @PublicKey

data WalletError
  = SeqNoMismatch
  | SignatureMismatch
  deriving (Eq, Ord, Show, Generic)

instance Exception WalletError

instance Enum WalletError where
  toEnum 33 = SeqNoMismatch
  toEnum 34 = SignatureMismatch
  toEnum _ = error "Uknown MultiSigError id"

  fromEnum SeqNoMismatch = 33
  fromEnum SignatureMismatch = 34

recvInternal :: '[Slice] :-> '[]
recvInternal = drop

recvExternal :: '[Slice] :-> '[]
recvExternal = do
  decodeFromSlice @Signature
  dup
  preloadFromSlice @Word32
  stacktype @[Word32, Slice, Signature]
  -- cnt cs sign

  pushRoot
  decodeFromCell @Storage
  stacktype @[PublicKey, Word32, Word32, Slice, Signature]
  -- pk cnt' cnt cs sign

  xcpu @1 @2
  stacktype @[Word32, Word32, PublicKey, Word32, Slice, Signature]
  -- cnt cnt' pk cnt cs sign

  equalInt >> throwIfNot SeqNoMismatch

  push @2
  sliceHash
  stacktype @[Hash Slice, PublicKey, Word32, Slice, Signature]
  -- hash pk cnt cs sign

  xc2pu @0 @4 @4
  stacktype @[PublicKey, Signature, Hash Slice, Word32, Slice, PublicKey]
  -- pubk sign hash cnt cs pubk

  chkSignU
  stacktype @[Bool, Word32, Slice, PublicKey]
  -- ? cnt cs pubk

  throwIfNot SignatureMismatch
  accept

  swap
  decodeFromSlice @Word32
  nip

  dup
  srefs @Word8

  pushInt 0
  if IsEq
  then ignore
  else do
    decodeFromSlice @Word8
    decodeFromSlice @(Cell MessageObject)
    stacktype @[Slice, Cell MessageObject, Word8, Word32, PublicKey]
    xchg @2
    sendRawMsg
    stacktype @[Slice, Word32, PublicKey]

  endS
  inc

  encodeToCell @Storage
  popRoot

getSeqno :: '[] :-> '[Word32]
getSeqno = do
  pushRoot
  cToS
  preloadFromSlice @Word32

เดžเด™เตเด™เดณเตเดŸเต† eDSL-เดจเตเดฑเต†เดฏเตเด‚ เดฎเตพเดŸเตเดŸเดฟ-เดธเดฟเด—เตเดจเต‡เดšเตเดšเตผ เดตเดพเดฒเดฑเตเดฑเต เด•เดฐเดพเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดฎเตเดดเตเดตเตป เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเตเด‚ เด‡เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚ เดˆ เดถเต‡เด–เดฐเด‚. เด•เต‚เดŸเดพเดคเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเต เด…เดจเตเดคเตผเดจเดฟเตผเดฎเตเดฎเดฟเดค เดญเดพเดทเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต, เดžเด™เตเด™เดณเตเดŸเต† เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เตป เดœเต‹เตผเดœเดฟ เด…เด—เดชเต‹เดตเต.

เดฎเดคเตเดธเดฐเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดŸเต‹เดฃเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดฎเตเดณเตเดณ เดจเดฟเด—เดฎเดจเด™เตเด™เตพ

เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดœเต‹เดฒเดฟ 380 เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดŽเดŸเตเดคเตเดคเต (เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป, เดฎเต€เดฑเตเดฑเดฟเด‚เด—เตเด•เตพ, เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเด•เดธเดจเด‚ เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเตฝ เด‰เตพเดชเตเดชเต†เดŸเต†). เด…เดžเตเดšเต เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดฎเดคเตเดธเดฐ เดชเดฆเตเดงเดคเดฟเดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเดคเตเดคเต: CTO, เดŸเต€เด‚ เดฒเต€เดกเตผ, เดฌเตเดฒเต‹เด•เตเด•เตโ€Œเดšเต†เดฏเดฟเตป เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เด‚ เดตเดฟเดฆเด—เตเดงเตผ, เดนเดพเดธเตโ€Œเด•เต†เตฝ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ.

เด’เดฐเต เดนเดพเด•เตเด•เดคเตเดคเต‹เดฃเดฟเดจเตเดฑเต† เดธเตเดชเดฟเดฐเดฟเดฑเตเดฑเต, เด•เตเดฒเต‹เดธเต เดŸเต€เด‚ เดตเตผเด•เตเด•เต, เดชเตเดคเดฟเดฏ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเด•เดณเตเดŸเต† เดตเดถเด™เตเด™เดณเดฟเตฝ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดฎเตเดดเตเด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดค เดŽเดจเตเดจเดฟเดต เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด†เดตเต‡เดถเด•เดฐเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเต† เดฎเดคเตเดธเดฐเดคเตเดคเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเดจเตเดณเตเดณ เดตเดฟเดญเดตเด™เตเด™เตพ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เด…เดตเดธเตเดฅเดฏเดฟเตฝ เดชเดฐเดฎเดพเดตเดงเดฟ เดซเดฒเด™เตเด™เตพ เดจเต‡เดŸเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เด‰เดฑเด•เตเด•เดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฐเดพเดคเตเดฐเดฟเด•เตพ เดตเดฟเดฒเดฎเดคเดฟเด•เตเด•เดพเดจเดพเดตเดพเดคเตเดค เด…เดจเตเดญเดตเดตเตเด‚ เดฎเดฟเด•เดšเตเดš เด“เตผเดฎเตเดฎเด•เดณเตเด‚ เด•เตŠเดฃเตเดŸเต เดจเดทเตเดŸเดชเดฐเดฟเดนเดพเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต†, เด…เดคเตเดคเดฐเด‚ เดœเต‹เดฒเดฟเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เด•เดฎเตเดชเดจเดฟเดฏเตเดŸเต† เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเตเดŸเต† เด’เดฐเต เดจเดฒเตเดฒ เดชเดฐเต€เด•เตเดทเดฃเดฎเดพเดฃเต, เด•เดพเดฐเดฃเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด†เดจเตเดคเดฐเดฟเด• เด‡เดŸเดชเต†เดŸเดฒเดฟเดฒเตเดฒเดพเดคเต† เดฏเดฅเดพเตผเดคเตเดฅ เดฎเดพเดจเตเดฏเดฎเดพเดฏ เดซเดฒเด™เตเด™เตพ เดจเต‡เดŸเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต.

เดตเดฐเดฟเด•เตพ เดฎเดพเดฑเตเดฑเดฟเดจเดฟเตผเดคเตเดคเดฟเดฏเดพเตฝ: เดŸเตบ เดŸเต€เด‚ เดจเดŸเดคเตเดคเดฟเดฏ เดœเต‹เดฒเดฟเดฏเตเดŸเต† เด…เดณเดตเต เดžเด™เตเด™เดณเต† เด†เด•เตผเดทเดฟเดšเตเดšเต. เดธเด™เตเด•เต€เตผเดฃเตเดฃเดตเตเด‚ เดฎเดจเต‹เดนเดฐเดตเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด…เดตเตผเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต. เดตเดฒเดฟเดฏ เดธเดพเดงเตเดฏเดคเด•เดณเตเดณเตเดณ เด’เดฐเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดพเดฃเต†เดจเตเดจเต TON เดธเตเดตเดฏเด‚ เดคเต†เดณเดฟเดฏเดฟเดšเตเดšเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เด†เดตเดพเดธเดตเตเดฏเดตเดธเตเดฅ เดตเดฟเด•เดธเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเดฒเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด‚ เดตเดฟเด•เดธเดจ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดพเดฏเตเด‚ เด’เดฐเตเดชเดพเดŸเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเดŸเต† เดญเดพเด—เดฎเดพเด•เตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เด…เดญเดฟเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เดฒเต‡เด–เดจเด‚ เดตเดพเดฏเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเดตเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต‹เดฆเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต TON เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด†เดถเดฏเด™เตเด™เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต เดŽเดดเตเดคเตเด• - เดžเด™เตเด™เดณเตเดŸเต† เด…เดจเตเดญเดตเด‚ เดชเด™เตเด•เดฟเดŸเตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•