முக்கிய உள்ளடக்கத்திற்குத் தாவு
Change page

திறன் ஒப்பந்த மொழிகள்

எத்திரியம் பற்றிய ஒரு சிறந்த அம்சம் என்னவென்றால், திறன் ஒப்பந்தங்களை ஒப்பீட்டளவில் டெவலப்பர்களுக்கு ஏற்ற மொழிகளைப் பயன்படுத்தி நிரலாக்கம் செய்யலாம். உங்களுக்கு Python அல்லது ஏதேனும் சுருள்-அடைப்புக்குறி மொழியில் (curly-bracket language) (புதிய தாவலில் திறக்கும்) அனுபவம் இருந்தால், பழக்கமான தொடரியல் (syntax) கொண்ட ஒரு மொழியை நீங்கள் கண்டறியலாம்.

மிகவும் சுறுசுறுப்பான மற்றும் பராமரிக்கப்படும் இரண்டு மொழிகள்:

  • Solidity
  • Vyper

Remix ஒருங்கிணைந்த மேம்பாட்டுச் சூழல் (IDE) ஆனது Solidity மற்றும் Vyper இரண்டிலும் ஒப்பந்தங்களை உருவாக்குவதற்கும் சோதிப்பதற்கும் ஒரு விரிவான மேம்பாட்டுச் சூழலை வழங்குகிறது. குறியீட்டை எழுதத் தொடங்க உலாவியில் உள்ள Remix IDE-ஐ முயன்று பார்க்கவும் (புதிய தாவலில் திறக்கும்).

அதிக அனுபவமுள்ள டெவலப்பர்கள் எத்தேரியம் மெய்நிகர் இயந்திரம் (EVM)-க்கான இடைநிலை மொழியான Yul அல்லது Yul-இன் நீட்டிப்பான Yul+ ஐப் பயன்படுத்த விரும்பலாம்.

நீங்கள் ஆர்வமாக இருந்து, இன்னும் தீவிர மேம்பாட்டில் உள்ள புதிய மொழிகளைச் சோதிக்க உதவ விரும்பினால், தற்போது ஆரம்ப கட்டத்தில் உள்ள வளர்ந்து வரும் திறன் ஒப்பந்த மொழியான Fe-ஐ நீங்கள் பரிசோதிக்கலாம்.

முன்நிபந்தனைகள்

நிரலாக்க மொழிகள், குறிப்பாக JavaScript அல்லது Python பற்றிய முன் அறிவு, திறன் ஒப்பந்த மொழிகளில் உள்ள வேறுபாடுகளைப் புரிந்துகொள்ள உதவும். மொழி ஒப்பீடுகளைப் பற்றி ஆழமாக ஆராய்வதற்கு முன், திறன் ஒப்பந்தங்களை ஒரு கருத்தாகப் புரிந்துகொள்ளுமாறு நாங்கள் பரிந்துரைக்கிறோம். திறன் ஒப்பந்தங்கள் அறிமுகம்.

Solidity

  • திறன் ஒப்பந்தங்களைச் செயல்படுத்துவதற்கான பொருள் சார்ந்த (Object-oriented), உயர்நிலை மொழி.
  • C++ ஆல் மிகவும் ஆழமாகப் பாதிக்கப்பட்ட சுருள்-அடைப்புக்குறி மொழி.
  • நிலையான வகைப்படுத்தப்பட்டது (Statically typed - ஒரு மாறியின் வகை தொகுக்கும் நேரத்தில் (compile time) அறியப்படும்).
  • ஆதரிப்பவை:
    • மரபுரிமை (Inheritance - நீங்கள் பிற ஒப்பந்தங்களை நீட்டிக்கலாம்).
    • நிரலகங்கள் (Libraries - வெவ்வேறு ஒப்பந்தங்களிலிருந்து நீங்கள் அழைக்கக்கூடிய மறுபயன்பாட்டு குறியீட்டை உருவாக்கலாம் - மற்ற பொருள் சார்ந்த நிரலாக்க மொழிகளில் உள்ள நிலையான வகுப்பில் உள்ள நிலையான செயல்பாடுகளைப் போல).
    • சிக்கலான பயனர் வரையறுக்கப்பட்ட வகைகள் (Complex user-defined types).

எடுத்துக்காட்டு ஒப்பந்தம்

இந்த எடுத்துக்காட்டு Solidity ஒப்பந்தத் தொடரியல் எப்படி இருக்கும் என்பதைப் பற்றிய ஒரு உணர்வை உங்களுக்கு வழங்கும். செயல்பாடுகள் மற்றும் மாறிகள் பற்றிய விரிவான விளக்கத்திற்கு, ஆவணங்களைப் பார்க்கவும் (புதிய தாவலில் திறக்கும்).

Vyper

  • Pythonic நிரலாக்க மொழி
  • வலுவான வகைப்படுத்தல் (Strong typing)
  • சிறிய மற்றும் புரிந்துகொள்ளக்கூடிய கம்பைலர் குறியீடு
  • திறமையான பைட் குறியீடு உருவாக்கம்
  • ஒப்பந்தங்களை மிகவும் பாதுகாப்பானதாகவும் தணிக்கை செய்ய எளிதானதாகவும் மாற்றும் நோக்கத்துடன் Solidity-ஐ விட வேண்டுமென்றே குறைவான அம்சங்களைக் கொண்டுள்ளது. Vyper இவற்றை ஆதரிக்காது:
    • மாற்றிகள் (Modifiers)
    • மரபுரிமை (Inheritance)
    • இன்லைன் அசெம்பிளி (Inline assembly)
    • செயல்பாடு ஓவர்லோடிங் (Function overloading)
    • ஆபரேட்டர் ஓவர்லோடிங் (Operator overloading)
    • சுழல்நிலை அழைப்பு (Recursive calling)
    • முடிவிலி நீள சுழல்கள் (Infinite-length loops)
    • பைனரி நிலையான புள்ளிகள் (Binary fixed points)

v0.4.0 முதல், Vyper ஒரு தொகுதி அமைப்பை (module system) (புதிய தாவலில் திறக்கும்) ஆதரிக்கிறது. குறியீடு மறுபயன்பாடு வகுப்பு மரபுரிமைக்கு (class inheritance) பதிலாக, கலவை (composition) மூலம் அடையப்படுகிறது.

மேலும் தகவலுக்கு, Vyper-இன் பகுத்தறிவைப் படிக்கவும் (புதிய தாவலில் திறக்கும்).

எடுத்துக்காட்டு

இந்த எடுத்துக்காட்டு Vyper ஒப்பந்தத் தொடரியல் எப்படி இருக்கும் என்பதைப் பற்றிய ஒரு உணர்வை உங்களுக்கு வழங்கும். செயல்பாடுகள் மற்றும் மாறிகள் பற்றிய விரிவான விளக்கத்திற்கு, ஆவணங்களைப் பார்க்கவும் (புதிய தாவலில் திறக்கும்).

Yul மற்றும் Yul+

நீங்கள் எத்திரியத்திற்குப் புதியவராக இருந்து, திறன் ஒப்பந்த மொழிகளுடன் இன்னும் எந்தக் குறியீட்டையும் செய்யவில்லை என்றால், Solidity அல்லது Vyper உடன் தொடங்குமாறு பரிந்துரைக்கிறோம். திறன் ஒப்பந்தப் பாதுகாப்புச் சிறந்த நடைமுறைகள் மற்றும் EVM உடன் பணிபுரியும் பிரத்தியேகங்களை நீங்கள் நன்கு அறிந்தவுடன் மட்டுமே Yul அல்லது Yul+ ஐப் பார்க்கவும்.

Yul

  • எத்திரியத்திற்கான இடைநிலை மொழி.
  • EVM மற்றும் எத்திரியம் சுவையிலான WebAssembly-ஆன Ewasm (புதிய தாவலில் திறக்கும்) ஆகியவற்றை ஆதரிக்கிறது, மேலும் இது இரு தளங்களுக்கும் பயன்படுத்தக்கூடிய பொதுவான வகுப்பியாக வடிவமைக்கப்பட்டுள்ளது.
  • EVM மற்றும் Ewasm தளங்கள் இரண்டிற்கும் சமமாகப் பயனளிக்கக்கூடிய உயர்நிலை மேம்படுத்தல் (optimisation) நிலைகளுக்கான நல்ல இலக்கு.

Yul+

  • Yul-இன் குறைந்த-நிலை, மிகவும் திறமையான நீட்டிப்பு.
  • ஆரம்பத்தில் ஒரு ஆப்டிமிஸ்டிக் ரோல்அப் ஒப்பந்தத்திற்காக வடிவமைக்கப்பட்டது.
  • Yul+ ஆனது Yul-க்கான ஒரு சோதனை மேம்படுத்தல் முன்மொழிவாகப் பார்க்கப்படலாம், இது அதில் புதிய அம்சங்களைச் சேர்க்கிறது.

எடுத்துக்காட்டு ஒப்பந்தம்

பின்வரும் எளிய எடுத்துக்காட்டு ஒரு அடுக்குச் செயல்பாட்டைச் (power function) செயல்படுத்துகிறது. இதை solc --strict-assembly --bin input.yul ஐப் பயன்படுத்தித் தொகுக்கலாம். இந்த எடுத்துக்காட்டு input.yul கோப்பில் சேமிக்கப்பட வேண்டும்.

நீங்கள் ஏற்கனவே திறன் ஒப்பந்தங்களில் நல்ல அனுபவம் பெற்றிருந்தால், Yul-இல் முழுமையான ERC-20 செயலாக்கத்தை இங்கே (புதிய தாவலில் திறக்கும்) காணலாம்.

Fe

  • எத்தேரியம் மெய்நிகர் இயந்திரம் (EVM)-க்கான நிலையான வகைப்படுத்தப்பட்ட மொழி.
  • Python மற்றும் Rust ஆகியவற்றால் ஈர்க்கப்பட்டது.
  • எத்திரியம் சுற்றுச்சூழல் அமைப்புக்குப் புதிய டெவலப்பர்களுக்கும் கூட -- கற்றுக்கொள்ள எளிதாக இருக்க வேண்டும் என்பதை நோக்கமாகக் கொண்டுள்ளது.
  • Fe மேம்பாடு இன்னும் ஆரம்ப கட்டத்திலேயே உள்ளது, இந்த மொழி ஜனவரி 2021 இல் அதன் ஆல்பா வெளியீட்டைக் கொண்டிருந்தது.

எடுத்துக்காட்டு ஒப்பந்தம்

பின்வருவது Fe-இல் செயல்படுத்தப்பட்ட ஒரு எளிய ஒப்பந்தமாகும்.

எப்படித் தேர்ந்தெடுப்பது

வேறு எந்த நிரலாக்க மொழியையும் போலவே, இது பெரும்பாலும் சரியான வேலைக்குச் சரியான கருவியைத் தேர்ந்தெடுப்பது மற்றும் தனிப்பட்ட விருப்பங்களைப் பொறுத்தது.

நீங்கள் இன்னும் எந்த மொழியையும் முயற்சிக்கவில்லை என்றால் கருத்தில் கொள்ள வேண்டிய சில விஷயங்கள் இங்கே:

Solidity-இல் என்ன சிறப்பம்சம் உள்ளது?

  • நீங்கள் ஒரு தொடக்கக்காரராக இருந்தால், பல பயிற்சிகள் மற்றும் கற்றல் கருவிகள் உள்ளன. அதைப் பற்றி குறியீட்டு மூலம் கற்றுக்கொள்ளுங்கள் பிரிவில் மேலும் காண்க.
  • நல்ல டெவலப்பர் கருவிகள் கிடைக்கின்றன.
  • Solidity ஒரு பெரிய டெவலப்பர் சமூகத்தைக் கொண்டுள்ளது, அதாவது உங்கள் கேள்விகளுக்கான பதில்களை நீங்கள் மிக விரைவாகக் கண்டறியலாம்.

Vyper-இல் என்ன சிறப்பம்சம் உள்ளது?

  • திறன் ஒப்பந்தங்களை எழுத விரும்பும் Python டெவலப்பர்கள் தொடங்குவதற்குச் சிறந்த வழி.
  • Vyper குறைந்த எண்ணிக்கையிலான அம்சங்களைக் கொண்டுள்ளது, இது யோசனைகளை விரைவாக முன்மாதிரி (prototyping) செய்வதற்குச் சிறந்ததாக அமைகிறது.
  • Vyper தணிக்கை செய்ய எளிதானதாகவும் அதிகபட்சமாக மனிதர்கள் படிக்கக்கூடியதாகவும் இருக்க வேண்டும் என்பதை நோக்கமாகக் கொண்டுள்ளது.

Yul மற்றும் Yul+-இல் என்ன சிறப்பம்சம் உள்ளது?

  • எளிமையான மற்றும் செயல்பாட்டு குறைந்த-நிலை மொழி.
  • மூல EVM-க்கு மிக நெருக்கமாகச் செல்ல அனுமதிக்கிறது, இது உங்கள் ஒப்பந்தங்களின் எரிவாயு பயன்பாட்டை மேம்படுத்த உதவும்.

மொழி ஒப்பீடுகள்

அடிப்படைத் தொடரியல், ஒப்பந்த வாழ்க்கைச் சுழற்சி, இடைமுகங்கள், ஆபரேட்டர்கள், தரவுக் கட்டமைப்புகள், செயல்பாடுகள், கட்டுப்பாட்டு ஓட்டம் மற்றும் பலவற்றின் ஒப்பீடுகளுக்கு Auditless-இன் இந்த சீட் ஷீட்டைப் (cheatsheet) பார்க்கவும் (புதிய தாவலில் திறக்கும்)

மேலும் படிக்க