برنامه نویسی به زبان ارلنگ

ارلنگ زبان برنامه نویسی تابعی و همروند است

برنامه نویسی به زبان ارلنگ

ارلنگ زبان برنامه نویسی تابعی و همروند است

برنامه نویسی به زبان ارلنگ

در این وبلاگ مطالب مربوط به ارلنگ و الیکسیر منتشر خواهد شد

۲ مطلب با کلمه‌ی کلیدی «Elixir» ثبت شده است

  • ۱
  • ۰

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

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

در این وبلاگ من سعی ندارم مفاهیم بعضا خشک برنامه نویسی فانشکنال را بیان کنم. هدف من تنها اینست که بگویم برنامه نویسی شی گرا تنها روش برنامه نویسی نیست و در بسیاری از مسائل امروزه کارآمد هم نیست و همین امر شرکتهای بزرگی نظیر مایکروسافت را به فکر ایجاد زبان فانکشنال #F انداخته است.

  • مهدی حسینی مقدم
  • ۱
  • ۰

از آنجایی که زبان الکسیر برروی VM ارلنگ نصب می گردد ابتدا باید ارلنگ را نصب کنیم. برای اینکار ابتدا خط زیر را به فایل /etc/apt/sources.list اضافه می کنیم:

deb http://packages.erlang-solutions.com/debian wheezy contrib

پس از آن کلید عمومی مخزن ارلنگ را وارد می کنیم:

wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc

sudo apt-key add erlang_solutions.asc && rm erlang_solutions.asc

با استفاده از کامند زیر مخزن لینوکس خود را برروز رسانی می کنیم:

sudo apt-get update

و حال ارلنگ را نصب می کنیم:

sudo apt-get install erlang-mini

پس از نصب ارلنگ نیاز به نصب الکسیر داریم. برای این کار باید سورس کد آن را دریافت و کامپیال کنیم. اینکار را با استفاده از فرامین زیر انجام می دهیم:

git clone https://github.com/elixir-lang/elixir.git

 cd elixir

 make clean test

 sudo make install

 برای راحتی کار بهتر است آدرس فایل های اجرایی الکسیر را در مسیر لینوکس خود اضافه کنید. کافی است فایل زیر را ویرایش و خط پس از آن را به آن بیافزایید:

.profile 

export PATH="$PATH:/home/pi/elixir/bin"

لازم به ذکر است فایل مذکور در پوشه کاربری وجود دارد برای ورود به این پوشه کافیست دستور زیر را وارد کنید:

cd ~

  • مهدی حسینی مقدم