مطالب آموزشی

آشنایی با زبان برنامه‌نویسی سالیدیتی (Solidity)

ارسال‌شده در

سالیدیتی (Solidity) یک زبان برنامه نویسی سطح بالا محسوب می شود که هدف از طراحی آن کار با فناوری بلاک چین است . سالیدیتی به صورت ویژه‌ای جهت توسعه قراردادهای هوشمند بر بستر بلاک چین اتریوم مورد استفاده قرار می گیرد . بدین ترتیب قبل از آنکه وارد مبحث سالیدیتی شویم ، قصد داریم در خصوص قراردادهای هوشمند به طور مختصر توضیحی ارائه دهیم .

سالیدیتی و قراردادهای هوشمند

اگر بخواهیم سالیدیتی را از منظر زبان برنامه نویسی تعریف کنیم ، یک قرارداد مجموعه‌ای از داده‌ها (شامل وضعیت‌ها) و یک قطعه کد (شامل توابع) می باشد که در درون یک آدرس در شبکه اتریوم واقع شده است . در درون هر قرارداد این امکان را داریم که اقدام به تعریف متغیر وضعیت ، متد و یا رویداد (Event) نماییم . این قرارداد امکان مدیریت تراکنش‌ها را درون بلاک‌ها در بلاک چین دارد . هر بلاک دارای یک آدرس معین در قالب یک کلید رمزنگاری می باشد . این آدرس در نتیجه اعمال تابع هش روی آدرس بلاک قبلی ایجاد شده است . این مسئله موجب به وجود آمدن ارتباط میان بلاک‌های مجاور می‌گردد ؛ پس به وجود آوردن تغییر در بلاک‌ها و یا هک آن به سایر شیوه‌ها به راحتی امکان‌پذیر نخواهد بود .

سالیدیتی یکی از زبان‌های برنامه نویسی است که جهت توسعه برنامه ، بر روی ماشین مجازی اتریوم (EVM) ایجاد شده است . تعداد زیادی از کلاس‌ها و کتابخانه ها در سالیدیتی موجود است که امکان توسعه یک قرارداد هوشمند از جانب شما، بی آنکه متحمل زحمتی شوید را می دهد . از پراهمیت‌ترین فضاهای توسعه نرم افزار (IDE) به منظور برنامه نویسی به زبان سالیدیتی می توان به موارد زیر اشاره کرد :

  • ریمیکس Remix
  • ویژوال استدیو Visual Studio (با بهره‌گیری از پلاگین)
  • اتر اتم Ether atom (با بهره‌گیری از پلاگین)

خصوصیات زبان سالیدیتی

در این بخش قصد داریم به برخی از خصوصیات پایه زبان سالیدیتی بپردازیم . این خصوصیات شبیه خصوصیات زبان های سطح بالایی همچون جاوا و C++ می باشد .

  • نوع داده‌ای ایستا

اگرچه ساختار این زبان مشابه جاوا اسکریپت است ، ولی تفاوتی که دارد این است که نوع داده‌ای جاوا اسکریپت ، ایستا می باشد .

به عنوان مثال شما در جاوا و C++ می بایست در هنگام تعریف یک متغیر و قبل از آنکه آن را مورد استفاده قرار دهید ، نوع آن متغییر را مشخص نمایید و اگر اینکار را انجام ندهید در هنگام کامپایل با خطا روبه رو می‌شوید . زمان سالیدیتی نیز همانند جاوا و C++ است .

  •  قرارداد و رابط‌ها (Interfaces)

در زبان برنامه نویسی سالیدیتی ، یک قرارداد (Contract) یک ساختار داده (data structure) به حساب می آید و این موضوع امکان ساخت قرارداد را به ما می دهد و کمک می کند تا بتوانیم آن را مدیریت نماییم . این امکان وجود دارد که قراردادها از جانب قراردادهای فرزند به ارث برده شوند و بدین ترتیب قردادهای پیچیده‌تری به وجود آید .

  •  اصلاح کننده توابع (Function Modifier)

این خصوصیت شبیه امکان بازنویسی توابع در زبان های برنامه نویسی شیء گرا می باشد . تصور کنید تصمیم دارید اگر یک شرط انجام شود ، اقدام به اجرای یک تابع به شیوه‌ای  متفاوت نمایید . برای اینکار قادر به استفاده از این خصوصیت هستید و می توانید رفتار تابع را تغییر دهید . اصلاح کننده توابع جهت بازنویسی توابع در قراردادهای وارث نیز کاربردی می باشد .

  • رویدادها (Events)

رویدادها به منظور نوشتن اطلاعات مرتبط با قراردادها بر روی لاگ بلاک چین (Blockchain Log) مورد استفاده قرار می گیرند . یک رویداد شبیه یک تابع می باشد که یک داده را به عنوان ورودی می گیرد و آن را روی لاگ بلاک چین یادداشت می کند .

  • تعیین سطح دسترسی

این خصوصیت شبیه دسترسی های public و private در زبان های برنامه نویسی شیء‌گرا می باشد . در زبان سالیدیتی اسم و قوانین این دسترسی‌ها اندکی دستخوش تغییر شده است . به عنوان مثال در سالیدیتی دارای دو سطح دسترسی owned و mortal هستیم . سطح دسترسی های بیشتری نیز به منظور برقراری امنیت بیشتر در این زبان برنامه نویسی موجود است .

  • تبدیل کردن نوع داده‌ای به شکل صریح

شما با بهره‌گیری از سالیدیتی امکان تغییر نوع داده‌ها را دارید . این تغییرها اغلب در هنگام کامپایل مورد بررسی قرار می گیرند ، البته گفتنی است که استثناهایی نیز وجود دارد .

  • آرایه‌های درون حافظه

آرایه های داینامیک این امکان را دارند تا به طور مستقیم  درون حافظه واقع شوند .

  • کتابخانه‌ها

شما قادر به استفاده از کتابخانه‌های متنوعی به منظور نوشتن قراردادهای خود هستید و بدین وسیله می توانید اقدام به سفارشی‌سازی قرارداد خود کنید .

  • امکان Import کردن

با به کار بردن کلمه کلیدی import ، شما قادر به اضافه نمودن کدهای سایر فایل ها به قرارداد خود هستید .

منبع : itnext

برای دیدگاه کلیک کنید

رویدادهای ارز دیجیتال

طبق قانون کپی رایت تمامی حقوق این آکادمی هلاکوئی برای این شرکت محفوظ می باشد.