مرکزی مواد پر جائیں
Change page

سمارٹ کنٹریکٹ کی زبانیں

ایتھیریم کے بارے میں ایک بہترین پہلو یہ ہے کہ سمارٹ کنٹریکٹس کو نسبتاً ڈیولپر دوست زبانوں کا استعمال کرتے ہوئے پروگرام کیا جا سکتا ہے۔ اگر آپ کو Python یا کسی بھی کرلی بریکٹ زبان (opens in a new tab) کا تجربہ ہے، تو آپ مانوس سنٹیکس والی زبان تلاش کر سکتے ہیں۔

دو سب سے زیادہ فعال اور زیرِ انتظام زبانیں یہ ہیں:

  • Solidity
  • Vyper

Remix IDE Solidity اور Vyper دونوں میں کنٹریکٹس بنانے اور ٹیسٹ کرنے کے لیے ایک جامع ڈیولپمنٹ ماحول فراہم کرتا ہے۔ کوڈنگ شروع کرنے کے لیے براؤزر میں موجود Remix IDE آزمائیں (opens in a new tab)۔

زیادہ تجربہ کار ڈیولپرز Yul کا استعمال بھی کرنا چاہیں گے، جو ایتھیریم ورچوئل مشین (EVM) کے لیے ایک درمیانی زبان ہے، یا Yul+، جو Yul کی ایک ایکسٹینشن ہے۔

اگر آپ متجسس ہیں اور نئی زبانوں کو ٹیسٹ کرنے میں مدد کرنا پسند کرتے ہیں جو ابھی تک تیزی سے ڈیولپمنٹ کے مراحل میں ہیں، تو آپ Fe کے ساتھ تجربہ کر سکتے ہیں، جو ایک ابھرتی ہوئی سمارٹ کنٹریکٹ زبان ہے اور فی الحال اپنے ابتدائی مراحل میں ہے۔

پیشگی شرائط

پروگرامنگ زبانوں، خاص طور پر JavaScript یا Python کا پچھلا علم، آپ کو سمارٹ کنٹریکٹ زبانوں میں فرق کو سمجھنے میں مدد دے سکتا ہے۔ ہم یہ بھی تجویز کرتے ہیں کہ زبانوں کے موازنے میں گہرائی تک جانے سے پہلے آپ سمارٹ کنٹریکٹس کو ایک تصور کے طور پر سمجھیں۔ سمارٹ کنٹریکٹس کا تعارف۔

Solidity

  • سمارٹ کنٹریکٹس کو نافذ کرنے کے لیے آبجیکٹ اورینٹڈ، ہائی لیول زبان۔
  • کرلی بریکٹ زبان جو C++ سے سب سے زیادہ متاثر ہوئی ہے۔
  • سٹیٹیکلی ٹائپڈ (ویری ایبل کی ٹائپ کمپائل کے وقت معلوم ہوتی ہے)۔
  • سپورٹ کرتی ہے:
    • انہیریٹنس (آپ دوسرے کنٹریکٹس کو ایکسٹینڈ کر سکتے ہیں)۔
    • لائبریریاں (آپ دوبارہ استعمال کے قابل کوڈ بنا سکتے ہیں جسے آپ مختلف کنٹریکٹس سے کال کر سکتے ہیں – جیسے دیگر آبجیکٹ اورینٹڈ پروگرامنگ زبانوں میں سٹیٹک کلاس میں سٹیٹک فنکشنز)۔
    • پیچیدہ یوزر ڈیفائنڈ ٹائپس۔

مثال کا کنٹریکٹ

یہ مثال آپ کو اندازہ دے گی کہ Solidity کنٹریکٹ کا سنٹیکس کیسا ہوتا ہے۔ فنکشنز اور ویری ایبلز کی مزید تفصیلی وضاحت کے لیے، دستاویزات دیکھیں (opens in a new tab)۔

Vyper

  • پائتھونک پروگرامنگ زبان
  • سٹرانگ ٹائپنگ
  • چھوٹا اور قابل فہم کمپائلر کوڈ
  • موثر بائٹ کوڈ جنریشن
  • جان بوجھ کر Solidity سے کم فیچرز رکھتی ہے جس کا مقصد کنٹریکٹس کو زیادہ محفوظ اور آڈٹ کرنے میں آسان بنانا ہے۔ Vyper درج ذیل کو سپورٹ نہیں کرتی:
    • موڈیفائرز
    • انہیریٹنس
    • ان لائن اسمبلی
    • فنکشن اوورلوڈنگ
    • آپریٹر اوورلوڈنگ
    • ریکرسیو کالنگ
    • لامحدود لمبائی والے لوپس
    • بائنری فکسڈ پوائنٹس

مزید معلومات کے لیے، Vyper کی دلیل پڑھیں (opens in a new tab)۔

مثال

یہ مثال آپ کو اندازہ دے گی کہ Vyper کنٹریکٹ کا سنٹیکس کیسا ہوتا ہے۔ فنکشنز اور ویری ایبلز کی مزید تفصیلی وضاحت کے لیے، دستاویزات دیکھیں (opens in a new tab)۔

Yul اور Yul+

اگر آپ ایتھیریم میں نئے ہیں اور ابھی تک سمارٹ کنٹریکٹ زبانوں کے ساتھ کوئی کوڈنگ نہیں کی ہے، تو ہم Solidity یا Vyper سے شروعات کرنے کی تجویز کرتے ہیں۔ Yul یا Yul+ کو تب ہی دیکھیں جب آپ سمارٹ کنٹریکٹ سیکیورٹی کے بہترین طریقوں اور EVM کے ساتھ کام کرنے کی تفصیلات سے واقف ہو جائیں۔

Yul

  • ایتھیریم کے لیے درمیانی زبان۔
  • EVM اور Ewasm (opens in a new tab) کو سپورٹ کرتی ہے، جو ایتھیریم کے انداز کی WebAssembly ہے، اور اسے دونوں پلیٹ فارمز کے قابل استعمال مشترکہ ڈینومینیٹر کے طور پر ڈیزائن کیا گیا ہے۔
  • ہائی لیول آپٹیمائزیشن کے مراحل کے لیے ایک اچھا ہدف ہے جو EVM اور Ewasm دونوں پلیٹ فارمز کو یکساں طور پر فائدہ پہنچا سکتا ہے۔

Yul+

  • Yul کی ایک لو لیول، انتہائی موثر ایکسٹینشن۔
  • ابتدائی طور پر ایک آپٹمسٹک رول اپ کنٹریکٹ کے لیے ڈیزائن کی گئی تھی۔
  • Yul+ کو Yul کے لیے ایک تجرباتی اپ گریڈ تجویز کے طور پر دیکھا جا سکتا ہے، جو اس میں نئے فیچرز کا اضافہ کرتی ہے۔

مثال کا کنٹریکٹ

درج ذیل سادہ مثال ایک پاور فنکشن کو نافذ کرتی ہے۔ اسے solc --strict-assembly --bin input.yul کا استعمال کرتے ہوئے کمپائل کیا جا سکتا ہے۔ اس مثال کو input.yul فائل میں محفوظ کیا جانا چاہیے۔

اگر آپ پہلے ہی سمارٹ کنٹریکٹس کا اچھا تجربہ رکھتے ہیں، تو Yul میں ایک مکمل ERC-20 کا نفاذ یہاں (opens in a new tab) پایا جا سکتا ہے۔

Fe

  • ایتھیریم ورچوئل مشین (EVM) کے لیے سٹیٹیکلی ٹائپڈ زبان۔
  • Python اور Rust سے متاثر۔
  • اس کا مقصد سیکھنے میں آسان ہونا ہے -- یہاں تک کہ ان ڈیولپرز کے لیے بھی جو ایتھیریم ایکو سسٹم میں نئے ہیں۔
  • Fe کی ڈیولپمنٹ ابھی اپنے ابتدائی مراحل میں ہے، اس زبان کا الفا ریلیز جنوری 2021 میں ہوا تھا۔

مثال کا کنٹریکٹ

ذیل میں Fe میں نافذ کیا گیا ایک سادہ کنٹریکٹ ہے۔

انتخاب کیسے کریں

کسی بھی دوسری پروگرامنگ زبان کی طرح، یہ زیادہ تر صحیح کام کے لیے صحیح ٹول کے انتخاب کے ساتھ ساتھ ذاتی ترجیحات کے بارے میں ہے۔

اگر آپ نے ابھی تک کسی بھی زبان کو نہیں آزمایا ہے تو یہاں چند چیزوں پر غور کرنا چاہیے:

Solidity کے بارے میں کیا زبردست ہے؟

  • اگر آپ ابتدائی ہیں، تو وہاں بہت سے ٹیوٹوریلز اور سیکھنے کے ٹولز موجود ہیں۔ اس کے بارے میں مزید کوڈنگ کے ذریعے سیکھیں سیکشن میں دیکھیں۔
  • اچھے ڈیولپر ٹولز دستیاب ہیں۔
  • Solidity کی ایک بڑی ڈیولپر کمیونٹی ہے، جس کا مطلب ہے کہ آپ کو اپنے سوالات کے جوابات بہت جلد ملنے کا امکان ہے۔

Vyper کے بارے میں کیا زبردست ہے؟

  • ان Python ڈیولپرز کے لیے شروعات کرنے کا بہترین طریقہ جو سمارٹ کنٹریکٹس لکھنا چاہتے ہیں۔
  • Vyper میں فیچرز کی تعداد کم ہے جو اسے آئیڈیاز کی فوری پروٹو ٹائپنگ کے لیے بہترین بناتی ہے۔
  • Vyper کا مقصد آڈٹ کرنے میں آسان اور زیادہ سے زیادہ انسانوں کے پڑھنے کے قابل ہونا ہے۔

Yul اور Yul+ کے بارے میں کیا زبردست ہے؟

  • سادہ اور فنکشنل لو لیول زبان۔
  • خام EVM کے بہت قریب جانے کی اجازت دیتی ہے، جو آپ کے کنٹریکٹس کے گیس کے استعمال کو بہتر بنانے میں مدد کر سکتی ہے۔

زبانوں کا موازنہ

بنیادی سنٹیکس، کنٹریکٹ لائف سائیکل، انٹرفیسز، آپریٹرز، ڈیٹا سٹرکچرز، فنکشنز، کنٹرول فلو، اور مزید کے موازنے کے لیے آڈٹ لیس کی یہ چیٹ شیٹ (opens in a new tab) دیکھیں۔

مزید مطالعہ