เจนเจพเจธเจ•เฉ‡เจฒ เจฆเฉ‡ เจจเจพเจฒ เจซเฉฐเจ•เจธเจผเจจเจฒ เจตเจฟเฉฑเจš เจซเฉฐเจ•เจธเจผเจจเจฒ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃเจพ: เจธเฉ‡เจฐเฉ‹เจ•เฉ‡เจฒ เจจเฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจฌเจฒเจพเจ•เจšเฉˆเจจ เจฎเฉเจ•เจพเจฌเจฒเจพ เจ•เจฟเจตเฉ‡เจ‚ เจœเจฟเฉฑเจคเจฟเจ†

เจคเฉเจธเฉ€เจ‚ เจธเจผเจพเจ‡เจฆ เจ‰เจน เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจธเฉเจฃเจฟเจ† เจนเฉ‹เจตเฉ‡เจ—เจพ เจŸเจจ เจฌเจฒเจพเจ•เจšเฉˆเจจ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจตเจพเจฒเจพ เจนเฉˆ. เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจธเจผเจพเจ‡เจฆ เจ‡เจน เจ–เจฌเจฐ เจฏเจพเจฆ เจ•เจฐ เจฒเจˆ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจ•เจฟ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฆเจพ เจเจฒเจพเจจ เจ•เฉ€เจคเจพ เจ‡เจธ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจ‡เฉฑเจ• เจœเจพเจ‚ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸเจธ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆเฅค

เจธเฉ‡เจฐเฉ‹เจ•เฉ‡เจฒ เจŸเฉ€เจฎ, เจตเฉฑเจกเฉ‡ เจฌเจฒเจพเจ•เจšเฉˆเจจ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจตเจฟเจ†เจชเจ• เจ…เจจเฉเจญเจต เจฆเฉ‡ เจจเจพเจฒ, เจ‡เฉฑเจ• เจชเจพเจธเฉ‡ เจจเจนเฉ€เจ‚ เจ–เฉœเฉเจนเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฒเจˆ เจชเฉฐเจœ เจ•เจฐเจฎเจšเจพเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉŒเจ‚เจชเจฟเจ†, เจ…เจคเฉ‡ เจฆเฉ‹ เจนเจซเจผเจคเจฟเจ†เจ‚ เจฌเจพเจ…เจฆ เจ‰เจนเจจเจพเจ‚ เจจเฉ‡ (เจตเจฟเฉฑเจš) เจฎเจพเจฎเฉ‚เจฒเฉ€ เจฌเฉ‡เจคเจฐเจคเฉ€เจฌเฉ‡ เจ‰เจชเจจเจพเจฎ เจธเฉˆเจ•เจธเฉ€ เจ—เจฟเจฐเจ—เจฟเจŸ เจฆเฉ‡ เจคเจนเจฟเจค เจ‡เจธ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพ เจธเจฅเจพเจจ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพเฅค เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเจš เจฎเฉˆเจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เจพ เจ•เจฟ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‡ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเจพ. เจ…เจธเฉ€เจ‚ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ…เจ—เจฒเฉ‡ เจฆเจธ เจฎเจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจฆเจฟเจฒเจšเจธเจช เจ•เจนเจพเจฃเฉ€ เจชเฉœเฉเจนเฉ‹เจ—เฉ‡, เจ…เจคเฉ‡ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉเจ เจฒเจพเจญเจฆเจพเจ‡เจ• เจฎเจฟเจฒเฉ‡เจ—เจพ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ•เฉฐเจฎ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจชเจฐ เจ†เจ“ เจฅเฉ‹เฉœเฉ‡ เจœเจฟเจนเฉ‡ เจธเฉฐเจฆเจฐเจญ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ.

เจฎเฉเจ•เจพเจฌเจฒเจพ เจ…เจคเฉ‡ เจ‡เจธ เจฆเฉ€เจ†เจ‚ เจธเจผเจฐเจคเจพเจ‚

เจ‡เจธ เจฒเจˆ, เจญเจพเจ—เฉ€เจฆเจพเจฐเจพเจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจ•เฉฐเจฎ เจ‡เฉฑเจ• เจœเจพเจ‚ เจ‡เฉฑเจ• เจคเฉ‹เจ‚ เจตเฉฑเจง เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸเจธ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจธเฉ€, เจจเจพเจฒ เจนเฉ€ TON เจˆเจ•เฉ‹เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจชเฉเจฐเจธเจคเจพเจต เจฌเจฃเจพเจ‰เจฃเจพเฅค เจ‡เจน เจฎเฉเจ•เจพเจฌเจฒเจพ 24 เจธเจคเฉฐเจฌเจฐ เจคเฉ‹เจ‚ 15 เจ…เจ•เจคเฉ‚เจฌเจฐ เจคเฉฑเจ• เจšเฉฑเจฒเจฟเจ† เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจพ 15 เจจเจตเฉฐเจฌเจฐ เจจเฉ‚เฉฐ เจนเฉ€ เจเจฒเจพเจจเจฟเจ† เจ—เจฟเจ†เฅค เจ•เจพเจซเจผเฉ€ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚, เจ‡เจธ เจ—เฉฑเจฒ 'เจคเฉ‡ เจตเจฟเจšเจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟ เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจฆเฉŒเจฐเจพเจจ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจตเจฟเฉฑเจš VoIP เจ•เจพเจฒเจพเจ‚ เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ…เจคเฉ‡ เจฎเฉเจฒเจพเจ‚เจ•เจฃ เจฒเจˆ C++ เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจกเจฟเจœเจผเจพเจˆเจจ เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ 'เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฐเฉฑเจ–เจฃ เจ…เจคเฉ‡ เจ˜เฉ‹เจธเจผเจฟเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพเฅค

เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฆเฉ‹ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจšเฉเจฃเฉ‡ เจนเจจเฅค เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจฒเจˆ, เจ…เจธเฉ€เจ‚ TON เจจเจพเจฒ เจตเฉฐเจกเฉ‡ เจ—เจ เจ”เจœเจผเจพเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€, เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ€ เจจเฉ‚เฉฐ เจธเจพเจกเฉ‡ เจ‡เฉฐเจœเจจเฉ€เจ…เจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ TON เจฒเจˆ เจตเจฟเจ•เจธเจฟเจค เจ•เฉ€เจคเฉ€ เจ—เจˆ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจ…เจคเฉ‡ เจนเฉˆเจธเจ•เฉ‡เจฒ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€เฅค

เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ€ เจšเฉ‹เจฃ เจ…เจšเจพเจจเจ• เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจตเจฟเฉฑเจš เจ•เจพเจฐเจชเฉ‹เจฐเฉ‡เจŸ เจฌเจฒเฉŒเจ— เจ…เจธเฉ€เจ‚ เจ…เจ•เจธเจฐ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ•เจฟเจ‰เจ‚ เจธเฉ‹เจšเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจฆเฉ€ เจ—เฉเฉฐเจเจฒเจคเจพ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจ…เจคเจฟเจ•เจฅเจจเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจธเจคเฉ‚-เจ…เจงเจพเจฐเจฟเจค เจญเจพเจธเจผเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจ‰เจ‚ เจคเจฐเจœเฉ€เจน เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน เจตเฉ€ เจธเจผเจพเจฎเจฒ เจนเฉˆ เจ‡เจธ เจฒเฉ‡เจ– เจฆเจพ เจฎเฉ‚เจฒ.

เจ…เจธเฉ€เจ‚ เจนเจฟเฉฑเจธเจพ เจฒเฉˆเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เจฟเจ‰เจ‚ เจ•เฉ€เจคเจพ?

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจพเจกเฉ€ เจฎเฉเจนเจพเจฐเจค เจ—เฉˆเจฐ-เจฎเจฟเจ†เจฐเฉ€ เจ…เจคเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจนเฉเจจเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจ•เจธเจฐ IT เจญเจพเจˆเจšเจพเจฐเฉ‡ เจฒเจˆ เจตเจฟเจ—เจฟเจ†เจจเจ• เจฎเจนเฉฑเจคเจต เจฆเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ…เจธเฉ€เจ‚ เจ“เจชเจจ-เจธเจฐเฉ‹เจค เจตเจฟเจ•เจพเจธ เจฆเจพ เจœเจผเฉ‹เจฐเจฆเจพเจฐ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจชเฉเจฐเจธเจฟเฉฑเจงเฉ€เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฐเฉเฉฑเจเฉ‡ เจนเฉ‹เจ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจตเจฟเจ—เจฟเจ†เจจ เจ…เจคเฉ‡ เจ—เจฃเจฟเจค เจฆเฉ‡ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจฎเฉเฉฑเจ– เจฐเฉ‚เจธเฉ€ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฟเจŸเฉ€เจ†เจ‚ เจจเจพเจฒ เจตเฉ€ เจธเจนเจฟเจฏเฉ‹เจ— เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฆเฉ‡ เจฆเจฟเจฒเจšเจธเจช เจ•เฉฐเจฎ เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจชเจฟเจ†เจฐเฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจธเจผเจฎเฉ‚เจฒเฉ€เจ…เจค เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจธเฉ€, เจชเจฐ เจ‡เจจเจพเจฎ เจซเฉฐเจก เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจชเฉเจฐเฉ‡เจฐเจฃเจพ เจฌเจฃ เจ—เจฟเจ†. ๐Ÿ™‚

TON เจฌเจฒเจพเจ•เจšเฉˆเจจ เจ–เฉ‹เจœ

เจ…เจธเฉ€เจ‚ เจฌเจฒเจพเจ•เจšเฉˆเจจ, เจ†เจฐเจŸเฉ€เจซเฉ€เจธเจผเฉ€เจ…เจฒ เจ‡เฉฐเจŸเฉˆเจฒเฉ€เจœเฉˆเจ‚เจธ เจ…เจคเฉ‡ เจฎเจธเจผเฉ€เจจ เจฒเจฐเจจเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ เจตเจฟเจ•เจพเจธ เจฆเฉ€ เจจเฉ‡เฉœเจฟเจ“เจ‚ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉ€ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ–เฉเฉฐเจเจฃ เจจเจพ เจฆเฉ‡เจˆเจ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจฒเจˆ, เจœเจฆเฉ‹เจ‚ เจฎเฉเจ•เจพเจฌเจฒเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†, เจธเจพเจกเฉ€ เจŸเฉ€เจฎ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจนเฉ€ เจ‡เจธ เจฆเฉ‡ เจตเจฟเจšเจพเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจธเฉ€ TON เจธเจซเฉˆเจฆ เจชเฉ‡เจชเจฐ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, TON เจจเจพเจฒ เจ•เฉฐเจฎ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจคเจ•เจจเฉ€เจ•เฉ€ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจ…เจคเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ‡ เจ…เจธเจฒ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ, เจ‡เจธ เจฒเจˆ เจชเจนเจฟเจฒเจพ เจ•เจฆเจฎ เจ•เจพเจซเจผเฉ€ เจธเจชเฉฑเจธเจผเจŸ เจธเฉ€ - เจ‡เจธ 'เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเจพ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจจเจพเจฒ เจ…เจงเจฟเจเจจ เจธเจพเจˆเจŸ เจ…เจคเฉ‡ เจ…เฉฐเจฆเจฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚.

เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจฎเฉเจ•เจพเจฌเจฒเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†, เจ•เฉ‹เจก เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจนเฉ‹ เจšเฉเฉฑเจ•เจพ เจธเฉ€, เจ‡เจธ เจฒเจˆ เจธเจฎเจพเจ‚ เจฌเจšเจพเจ‰เจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจฆเฉเจ†เจฐเจพ เจฒเจฟเจ–เฉ€ เจ—เจˆ เจ‡เฉฑเจ• เจ—เจพเจˆเจก เจœเจพเจ‚ เจธเฉฐเจ–เฉ‡เจช เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ. เจ‰เจชเจญเฉ‹เจ—เจคเจพ. เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจธ เจจเฉ‡ เจ•เฉ‹เจˆ เจจเจคเฉ€เจœเจพ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฑเจคเจพ - เจ‰เจฌเฉฐเจŸเฉ‚ 'เจคเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจจเฉ‚เฉฐ เจ…เจธเฉˆเจ‚เจฌเจฒ เจ•เจฐเจจ เจฒเจˆ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€เฅค

เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเฉ€ เจ–เฉเจฆ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจชเจฐ เจ•เฉเจ เจ–เฉ‡เจคเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉœเฉเจนเจจเจพ เจฎเฉเจธเจผเจ•เจฒ เจธเฉ€เฅค เจ…เจ•เจธเจฐ เจธเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจฌเจฟเฉฐเจฆเฉ‚เจ†เจ‚ 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€ เจ…เจคเฉ‡ เจ…เจฎเฉ‚เจฐเจค เจตเจฟเจšเจพเจฐเจพเจ‚ เจฆเฉ‡ เจ‰เฉฑเจš-เจชเฉฑเจงเจฐเฉ€ เจตเจฐเจฃเจจ เจคเฉ‹เจ‚ เจนเฉ‡เจ เจฒเฉ‡-เจชเฉฑเจงเจฐ เจฆเฉ‡ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€เฅค

เจ‡เจน เจธเฉŒเจ–เจพ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจจเจฟเจฐเจงเจพเจฐเจจ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเจพ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเฉ‡เจฐเจตเจพ เจธเจผเจพเจฎเจฒ เจจเจพ เจนเฉ‹เจตเฉ‡เฅค เจ‡เจธ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ•เจฟ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจ‡เจธเจฆเฉ‡ เจธเจŸเฉˆเจ• เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฎเจฆเจฆ เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ TON เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจฃ เจตเจพเจฒเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฆเจพ เจงเจฟเจ†เจจ เจญเจŸเจ•เจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฟเจ†เจฆเจพ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉˆเฅค

เจจเจฟเจ•เจธ: เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจเจพ

เจธเฉ‡เจฐเฉ‹เจ•เฉ‡เจฒ เจตเจฟเจ–เฉ‡ เจ…เจธเฉ€เจ‚ เจตเฉฑเจกเฉ‡ เจชเฉเจฐเจธเจผเฉฐเจธเจ• เจนเจพเจ‚ เจจเจฟเจ•. เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉˆเจจเจพเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ NixOps, เจ…เจคเฉ‡ เจธเจพเจกเฉ‡ เจธเจพเจฐเฉ‡ เจธเจฐเจตเจฐเจพเจ‚ 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจจเจฟเจ•เจธเฉ‹เจธ. เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, เจธเจพเจกเฉ‡ เจธเจพเจฐเฉ‡ เจฌเจฟเจฒเจก เจฆเฉเจฌเจพเจฐเจพ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจฏเฉ‹เจ— เจนเจจ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเจฟเจธ 'เจคเฉ‡ เจจเจฟเจ•เจธ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจฌเจฃเจพ เจ•เฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เฉ€เจคเฉ€ 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

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจจเจฟเจฐเจญเจฐเจคเจพ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค Nix เจœเจพเจฆเฉ‚เจˆ เจขเฉฐเจ— เจจเจพเจฒ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจธเจญ เจ•เฉเจ เจ•เจฐเฉ‡เจ—เจพ, เจญเจพเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ NixOS, Ubuntu, เจœเจพเจ‚ macOS เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹เฅค

TON เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ—

TON เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจตเจฟเฉฑเจš เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เฉ‹เจก TON เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ (TVM) 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆเฅค TVM เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจนเฉ‹เจฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจจเจพเจฒเฉ‹เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจฆเจฟเจฒเจšเจธเจช เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เจน เจ‡เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ€ เจนเฉˆ เจจเจฟเจฐเฉฐเจคเจฐเจคเจพเจตเจพเจ‚ ะธ เจกเจพเจŸเจพ เจจเจพเจฒ เจฒเจฟเฉฐเจ•.

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, TON เจฆเฉ‡ เจฎเฉเฉฐเจกเจฟเจ†เจ‚ เจจเฉ‡ เจคเจฟเฉฐเจจ เจจเจตเฉ€เจ†เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพเจตเจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚:

เจชเฉฐเจœเจพเจน เจ‡เฉฑเจ• เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฒ เจธเจŸเฉˆเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจนเฉˆ เจœเฉ‹ เจ•เจฟ เจธเจฎเจพเจจ เจนเฉˆ เจ…เฉฑเจ—เฉ‡. เจ‰เจธเจฆเฉ€ เจธเฉเจชเจฐ เจ•เจพเจฌเจฒเฉ€เจ…เจค TVM เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจนเฉˆเฅค

เจซเจจเจธเฉ€ เจฆเฉ‡ เจธเจฎเจพเจจ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจนเฉˆ C เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ - เจซเจฟเจซเจŸ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐเฅค

เจชเฉฐเจœเจตเจพเจ‚ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ - TVM เจฒเจˆ เจฌเจพเจˆเจจเจฐเฉ€ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจ•เฉ‹เจก เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจชเฉฐเจœเจตเฉ€เจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เฅค เจชเฉฐเจœเจตเฉ‡เจ‚ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจ•เฉ‹เจฒ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ‡เจน เจเจฎเจฌเฉˆเจกเจก เจกเฉ‹เจฎเฉ‡เจจ เจตเจฟเจธเจผเฉ‡เจธเจผ เจญเจพเจธเจผเจพ (eDSL).

เจธเจพเจกเจพ เจฎเฉเจ•เจพเจฌเจฒเจพ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ

เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ‡เจน เจธเจพเจกเฉ‡ เจฏเจคเจจเจพเจ‚ เจฆเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆ.

เจ…เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจธ เจญเฉเจ—เจคเจพเจจ เจšเฉˆเจจเจฒ

เจญเฉเจ—เจคเจพเจจ เจšเฉˆเจจเจฒ เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจนเฉˆ เจœเฉ‹ เจฆเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฒเจพเจ•เจšเฉˆเจจ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจญเฉเจ—เจคเจพเจจ เจญเฉ‡เจœเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจคเฉเจธเฉ€เจ‚ เจจเจพ เจธเจฟเจฐเจซเจผ เจชเฉˆเจธเฉ‡ เจฆเฉ€ เจฌเจšเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹ (เจ•เฉ‹เจˆ เจ•เจฎเจฟเจธเจผเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ), เจธเจ—เฉ‹เจ‚ เจธเจฎเจพเจ‚ เจตเฉ€ (เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจ—เจฒเฉ‡ เจฌเจฒเจพเจ• เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฒเจˆ เจ‰เจกเฉ€เจ• เจจเจนเฉ€เจ‚ เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€)เฅค เจญเฉเจ—เจคเจพเจจ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ…เจคเฉ‡ เจœเจฟเฉฐเจจเฉ€ เจตเจพเจฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจชเจพเจฐเจŸเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ 'เจคเฉ‡ เจญเจฐเฉ‹เจธเจพ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เฉฐเจคเจฎ เจธเจฎเจเฉŒเจคเฉ‡ เจฆเฉ€ เจจเจฟเจฐเจชเฉฑเจ–เจคเจพ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจ—เจพเจฐเฉฐเจŸเฉ€ เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ.

เจธเจพเจจเฉ‚เฉฐ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจ‡เฉฑเจ• เจ•เจพเจซเจผเฉ€ เจธเจงเจพเจฐเจจ เจนเฉฑเจฒ เจฒเฉฑเจญเจฟเจ† เจนเฉˆ. เจฆเฉ‹ เจงเจฟเจฐเจพเจ‚ เจฆเจธเจคเจ–เจค เจ•เฉ€เจคเฉ‡ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเจพ เจ†เจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ, เจนเจฐเฉ‡เจ• เจตเจฟเฉฑเจš เจฆเฉ‹ เจจเฉฐเจฌเจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ - เจนเจฐเฉ‡เจ• เจชเจพเจฐเจŸเฉ€ เจฆเฉเจ†เจฐเจพ เจ…เจฆเจพ เจ•เฉ€เจคเฉ€ เจชเฉ‚เจฐเฉ€ เจฐเจ•เจฎเฅค เจ‡เจน เจฆเฉ‹ เจจเฉฐเจฌเจฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเจจ เจตเฉˆเจ•เจŸเจฐ เจ˜เฉœเฉ€ เจฐเจตเจพเจ‡เจคเฉ€ เจตเจฟเจคเจฐเจฟเจค เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ 'เจคเฉ‡ "เจชเจนเจฟเจฒเจพเจ‚ เจตเจพเจชเจฐเจฟเจ†" เจ†เจฐเจกเจฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹เฅค เจ‡เจธ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเจพ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเฉฐเจญเจพเจตเฉ€ เจตเจฟเจตเจพเจฆ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจ‡เจธ เจตเจฟเจšเจพเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจจเฉฐเจฌเจฐ เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจชเจฐ เจ…เจธเฉ€เจ‚ เจฆเฉ‹เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจงเฉ‡เจฐเฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจธเฉฐเจฆเฉ‡เจธเจผ เจตเจฟเฉฑเจš เจญเฉเจ—เจคเจพเจจ เจฆเฉ€ เจฐเจ•เจฎ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚, เจœเฉ‡เจ•เจฐ เจธเฉเจจเฉ‡เจนเจพ เจ•เจฟเจธเฉ‡ เจ•เจพเจฐเจจ เจ—เฉเจ†เจš เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจธเจพเจฐเฉ€เจ†เจ‚ เจฐเจ•เจฎเจพเจ‚ เจ…เจคเฉ‡ เจ…เฉฐเจคเจฎ เจ—เจฃเจจเจพ เจธเจนเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจจเฉเจ•เจธเจพเจจ เจฆเจพ เจจเฉ‹เจŸเจฟเจธ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจธเจ•เจฆเจพเฅค

เจธเจพเจกเฉ‡ เจตเจฟเจšเจพเจฐ เจจเฉ‚เฉฐ เจชเจฐเจ–เจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ…เจœเจฟเจนเฉ‡ เจธเจงเจพเจฐเจจ เจ…เจคเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจญเฉเจ—เจคเจพเจจ เจšเฉˆเจจเจฒ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฒเฉฑเจญเฉ€เจ†เจ‚เฅค เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจนเฉˆ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจฆเฉ‹ เจนเฉ€ เจฎเจฟเจฒเฉ‡ เจนเจจ:

  1. เจตเฉ‡เจฐเจตเจพ เจ‡เฉฑเจ• เจธเจฎเจพเจจ เจชเจนเฉเฉฐเจš, เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจฆเจฟเจธเจผเจพเจนเฉ€เจฃ เจšเฉˆเจจเจฒ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจฒเจˆเฅค
  2. เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ, เจœเฉ‹ เจธเจพเจกเฉ‡ เจตเจพเจ‚เจ— เจนเฉ€ เจตเจฟเจšเจพเจฐ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฆเฉ€ เจตเจฟเจ†เจ–เจฟเจ† เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ†เจฎ เจธเจผเฉเฉฑเจงเจคเจพ เจ…เจคเฉ‡ เจตเจฟเจตเจพเจฆ เจจเจฟเจชเจŸเจพเจฐเจพ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚เฅค

เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ เจ•เจฟ เจธเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจจเจพ เจ…เจฐเจฅ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ, เจ‡เจธเจฆเฉ€ เจธเจผเฉเฉฑเจงเจคเจพ เจตเฉฑเจฒ เจตเจฟเจธเจผเฉ‡เจธเจผ เจงเจฟเจ†เจจ เจฆเจฟเฉฐเจฆเฉ‡ เจนเฉ‹เจเฅค เจ•เจˆ เจฆเฉเจนเจฐเจพเจ“ เจฆเฉ‡ เจฌเจพเจ…เจฆ, เจจเจฟเจฐเจงเจพเจฐเจจ เจคเจฟเจ†เจฐ เจธเฉ€, เจ…เจคเฉ‡ เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‰เจธ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เฉ‹.

เจ…เจธเฉ€เจ‚ FunC เจตเจฟเฉฑเจš เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจชเฉเจฐเจฌเฉฐเจงเจ•เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจธเจฟเจซเจผเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจซเจฟเจซเจŸ เจตเจฟเฉฑเจš เจธเจพเจกเฉ‡ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฒเจฟเจ–เฉ€ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ CLI เจฒเจˆ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจญเจพเจธเจผเจพ เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจธเฉ€, เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฒเจˆ Fit เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจธเฉ€ เจ•เจฟ เจ‡เจน เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เจฎเจพเจจเจฆเจพเจฐ เจนเฉ‹เจฃ เจฒเจˆ, เจซเจฟเจซเจŸ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจญเจพเจธเจผเจพ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจŸเฉ‚เจฒเจธ เจ…เจคเฉ‡ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจจเจพเจฒ เจชเฉเจฐเจธเจฟเฉฑเจง เจ…เจคเฉ‡ เจธเจฐเจ—เจฐเจฎเฉ€ เจจเจพเจฒ เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพเจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจคเจฐเจœเฉ€เจน เจฆเฉ‡เจฃ เจฒเจˆ เจ•เฉ‹เจˆ เจฎเจœเจฌเฉ‚เจฐ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ•เจพเจฐเจจ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ–เฉ‡เฅค เจธเจŸเฉˆเจ•-เจ…เจงเจพเจฐเจค เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจ•เจพเจซเจผเฉ€ เจ•เฉ‹เจเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเจ—เจพเจคเจพเจฐ เจ†เจชเจฃเฉ‡ เจธเจฟเจฐ เจตเจฟเฉฑเจš เจ‡เจน เจฐเฉฑเจ–เจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจŸเฉˆเจ• 'เจคเฉ‡ เจ•เฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ‡เจธ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค

เจ‡เจธ เจฒเจˆ, เจธเจพเจกเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจซเจฟเจซเจŸ เจฆเฉ€ เจนเฉ‹เจ‚เจฆ เจฆเจพ เจ‡เฉฑเจ•เฉ‹ เจ‡เฉฑเจ• เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจซเจฟเจซเจŸ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจฒเจˆ เจ‡เฉฑเจ• เจนเฉ‹เจธเจŸ เจญเจพเจธเจผเจพ เจตเจœเฉ‹เจ‚ เจ‡เจธเจฆเฉ€ เจญเฉ‚เจฎเจฟเจ•เจพ เจนเฉˆเฅค เจชเจฐ เจ•เฉ€ เจŸเฉ€เจตเฉ€เจเจฎ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจจเฉ‚เฉฐ เจ•เฉเจ เจฎเฉŒเจœเฉ‚เจฆเจพ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจเจฎเจฌเฉ‡เจก เจ•เจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจจเจพ เจ•เจฟ เจ‡เจธ เจœเจผเจฐเฉ‚เจฐเฉ€ เจ‰เจฆเฉ‡เจธเจผ เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ?

TVM Haskell eDSL

เจนเฉเจฃ เจธเจพเจกเฉ‡ เจฆเฉ‚เจœเฉ‡ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจนเฉ-เจฆเจธเจคเจ–เจค เจตเจพเจฒเจฟเจŸ เจตเจฟเจ•เจธเจฟเจค เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, เจชเจฐ FunC เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฒเจฟเจ–เจฃเจพ เจฌเจนเฉเจค เจฌเฉ‹เจฐเจฟเฉฐเจ— เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ…เจธเฉ€เจ‚ เจ•เฉเจ เจธเฉเจ†เจฆ เจœเฉ‹เฉœเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจธเฉ€, เจ…เจคเฉ‡ เจ‡เจน TVM เจฒเจˆ เจธเจพเจกเฉ€ เจ†เจชเจฃเฉ€ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจญเจพเจธเจผเจพ เจธเฉ€เฅค

เจซเจฟเจซเจŸ เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจตเจพเจ‚เจ—, เจธเจพเจกเฉ€ เจจเจตเฉ€เจ‚ เจญเจพเจธเจผเจพ เจเจฎเจฌเฉ‡เจก เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจชเจฐ เจ…เจธเฉ€เจ‚ เจซเจฟเจซเจŸ เจฆเฉ€ เจฌเจœเจพเจ เจนเจพเจธเจ•เฉ‡เจฒ เจจเฉ‚เฉฐ เจฎเฉ‡เจœเจผเจฌเจพเจจ เจตเจœเฉ‹เจ‚ เจšเฉเจฃเจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจ‰เฉฑเจจเจค เจ•เจฟเจธเจฎ เจฆเฉ‡ เจธเจฟเจธเจŸเจฎ เจฆเจพ เจชเฉ‚เจฐเจพ เจซเจพเจ‡เจฆเจพ เจ‰เจ เจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจนเฉˆเฅค เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸเจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจœเจฟเฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ เจ—เจฒเจคเฉ€ เจฆเฉ€ เจ•เฉ€เจฎเจค เจตเฉ€ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจธเจฅเจฟเจฐ เจŸเจพเจˆเจชเจฟเฉฐเจ—, เจธเจพเจกเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจตเฉฑเจกเจพ เจซเจพเจ‡เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจฆเจฐเจธเจพเจ‰เจฃ เจฒเจˆ เจ•เจฟ TVM เจ…เจธเฉˆเจ‚เจฌเจฒเจฐ เจนเฉˆเจธเจ•เฉ‡เจฒ เจตเจฟเฉฑเจš เจเจฎเจฌเฉ‡เจก เจตเจฐเจ—เจพ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ‡เจธ 'เจคเฉ‡ เจ‡เฉฑเจ• เจฎเจฟเจ†เจฐเฉ€ เจตเจพเจฒเจฟเจŸ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฒเจˆ เจ•เฉเจ เจ—เฉฑเจฒเจพเจ‚ เจนเจจ:

  • เจ‡เจธ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจœเจฟเฉฐเจจเฉ‡ เจšเจพเจนเฉ‹ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจนเฉ‹เจธเจŸ เจญเจพเจธเจผเจพ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเฉˆเจธเจ•เฉ‡เจฒ) เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจธเจพเจกเจพ eDSL เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจšเฉเจฃเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจน TVM เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจฐเฉเจŸเฉ€เจจ เจฌเจฃ เจœเจพเจตเฉ‡ เจœเจพเจ‚ เจ•เจพเจฒ เจฆเฉ‡ เจธเจฅเจพเจจ 'เจคเฉ‡ เจธเจฟเจฐเจซเจผ เจ‡เจจเจฒเจพเจˆเจจ เจนเฉ‹เจตเฉ‡เฅค
  • เจนเจพเจธเจ•เฉ‡เจฒ เจตเจพเจ‚เจ—, เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจœเฉ‹ เจ•เฉฐเจชเจพเจ‡เจฒ เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ เจœเจพเจ‚เจšเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจธเจพเจกเฉ‡ eDSL เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจ‡เจจเจชเฉเจŸ เจ•เจฟเจธเจฎ เจธเจŸเฉˆเจ• เจฆเฉ€ เจ•เจฟเจธเจฎ เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจซเฉฐเจ•เจธเจผเจจ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจพ เจ•เจฟเจธเจฎ เจธเจŸเฉˆเจ• เจฆเฉ€ เจ•เจฟเจธเจฎ เจนเฉˆ เจœเฉ‹ เจ•เจพเจฒ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉˆเจฆเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค
  • เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจเจจเฉ‹เจŸเฉ‡เจธเจผเจจ เจนเจจ stacktype, เจ•เจพเจฒ เจชเฉเจ†เจ‡เฉฐเจŸ 'เจคเฉ‡ เจธเฉฐเจญเจพเจตเจฟเจค เจธเจŸเฉˆเจ• เจ•เจฟเจธเจฎ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจเจพเฅค เจ…เจธเจฒ เจตเจพเจฒเจฟเจŸ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจตเจฟเฉฑเจš เจ‡เจน เจธเจฟเจฐเจซเจผ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจธเจจ, เจชเจฐ เจธเจพเจกเฉ‡ eDSL เจตเจฟเฉฑเจš เจ‰เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฆเจพ เจนเจฟเฉฑเจธเจพ เจนเจจ เจ…เจคเฉ‡ เจ•เฉฐเจชเจพเจˆเจฒ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‰เจน เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจœเจพเจ‚ เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจตเจœเฉ‹เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ เจœเฉ‹ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเฉ‚เฉฐ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจก เจฌเจฆเจฒเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจŸเฉˆเจ• เจ•เจฟเจธเจฎ เจฌเจฆเจฒเจฆเจพ เจนเฉˆเฅค เจฌเฉ‡เจธเจผเฉฑเจ•, เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจเจจเฉ‹เจŸเฉ‡เจธเจผเจจเจพเจ‚ เจฐเจจเจŸเจพเจˆเจฎ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจ•เฉ‹เจˆ TVM เจ•เฉ‹เจก เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค
  • เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ เจฆเฉ‹ เจนเจซเจผเจคเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ…เจœเฉ‡ เจตเฉ€ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเจพ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฌเจพเจ•เฉ€ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจœเฉ‹ เจ•เจฒเจพเจธเจพเจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจธเจตเฉˆเจšเจฒเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจฃเฉ€เจ†เจ‚ เจšเจพเจนเฉ€เจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจธเจพเจกเฉ‡ 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 เจ…เจคเฉ‡ เจฌเจนเฉ-เจฆเจธเจคเจ–เจค เจตเจพเจฒเฉ‡เจŸ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจฆเจพ เจชเฉ‚เจฐเจพ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก 'เจคเฉ‡ เจชเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ‡เจน เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€. เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจฆเฉฑเจธเจฟเจ† เจฌเจฟเจฒเจŸ-เจ‡เจจ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจฌเจพเจฐเฉ‡, เจธเจพเจกเฉ‡ เจธเจนเจฟเจฏเฉ‹เจ—เฉ€ เจœเจพเจฐเจœเฉ€ เจ…เจ—เจพเจชเฉ‹เจตเฅค

เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจ…เจคเฉ‡ TON เจฌเจพเจฐเฉ‡ เจธเจฟเฉฑเจŸเฉ‡

เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡, เจธเจพเจกเฉ‡ เจ•เฉฐเจฎ เจตเจฟเฉฑเจš 380 เจ˜เฉฐเจŸเฉ‡ เจฒเฉฑเจ—เฉ‡ (เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚, เจฎเฉ€เจŸเจฟเฉฐเจ—เจพเจ‚ เจ…เจคเฉ‡ เจ…เจธเจฒ เจตเจฟเจ•เจพเจธ เจจเจพเจฒ เจœเจพเจฃเฉ‚ เจ•เจฐเจตเจพเจ‰เจฃ เจธเจฎเฉ‡เจค)เฅค เจชเฉฐเจœ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฆเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจนเจฟเฉฑเจธเจพ เจฒเจฟเจ†: เจธเฉ€เจŸเฉ€เจ“, เจŸเฉ€เจฎ เจฒเฉ€เจก, เจฌเจฒเจพเจ•เจšเฉˆเจจ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฎเจพเจนเจฐ เจ…เจคเฉ‡ เจนเจพเจธเจ•เฉ‡เจฒ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจกเจฟเจตเฉˆเจฒเจชเจฐเฅค

เจธเจพเจจเฉ‚เฉฐ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจฎเฉเจธเจผเจ•เจฒ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจตเจฟเฉฑเจš เจนเจฟเฉฑเจธเจพ เจฒเฉˆเจฃ เจฒเจˆ เจธเจฐเฉ‹เจค เจฎเจฟเจฒเฉ‡ เจนเจจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เฉฑเจ• เจนเฉˆเจ•เจพเจฅเจจ เจฆเฉ€ เจญเจพเจตเจจเจพ, เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจŸเฉ€เจฎ เจตเจฐเจ•, เจ…เจคเฉ‡ เจจเจตเฉ€เจ†เจ‚ เจคเจ•เจจเฉ€เจ•เจพเจ‚ เจฆเฉ‡ เจชเจนเจฟเจฒเฉ‚เจ†เจ‚ เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฒเฉ€เจจ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเจฎเฉ‡เจธเจผเจพ เจฆเจฟเจฒเจšเจธเจช เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจธเฉ€เจฎเจค เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจจเจคเฉ€เจœเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจˆ เจจเฉ€เจ‚เจฆ เจตเจพเจฒเฉ€เจ†เจ‚ เจฐเจพเจคเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเจฎเฉ‹เจฒ เจคเจœเจผเจฐเจฌเฉ‡ เจ…เจคเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจฏเจพเจฆเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฎเฉเจ†เจตเจœเจผเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจœเจฟเจนเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉฐเจชเจจเฉ€ เจฆเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจŸเฉˆเจธเจŸ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจธเฉฑเจšเจฎเฉเฉฑเจš เจตเจงเฉ€เจ† เจจเจคเฉ€เจœเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจฎเฉเจธเจผเจ•เจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจชเจพเจธเฉ‡ เจฌเฉ‹เจฒ: เจ…เจธเฉ€เจ‚ TON เจŸเฉ€เจฎ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ‡ เจ—เจ เจ•เฉฐเจฎ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจคเฉ‹เจ‚ เจชเฉเจฐเจญเจพเจตเจฟเจค เจนเฉ‹เจเฅค เจ‰เจน เจ‡เฉฑเจ• เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ, เจธเฉเฉฐเจฆเจฐ, เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ, เจ•เจพเจฐเจœ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจฌเจฃเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจนเฉ‹เจ. TON เจจเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจธเฉฐเจญเจพเจตเจจเจพเจตเจพเจ‚ เจตเจพเจฒเจพ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจธเจพเจฌเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เจธ เจˆเจ•เฉ‹เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจฒเจˆ, เจฌเจฒเจพเจ•เจšเฉˆเจจ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจธเจพเจงเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจฌเจนเฉเจค เจ•เฉเจ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจธเจพเจจเฉ‚เฉฐ เจนเฉเจฃ เจ‡เจธ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฌเจฃเจจ 'เจคเฉ‡ เจฎเจพเจฃ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจตเฉ€ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจˆ เจธเจตเจพเจฒ เจนเจจ เจœเจพเจ‚ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ TON เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจˆ เจตเจฟเจšเจพเจฐ เจนเจจ, เจธเจพเจจเฉ‚เฉฐ เจฒเจฟเจ–เฉ‹ - เจธเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเจพ เจ…เจจเฉเจญเจต เจธเจพเจ‚เจเจพ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹