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

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

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

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

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

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

۳ مطلب در تیر ۱۳۹۴ ثبت شده است

  • ۰
  • ۰

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

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

1-      کارت حافظه مورد نظر خود با استفاده از فرمتر اس دی فرمت کنید. از فرمت کردن کارت با استفاده از فرمتر ویندوز خودداری کنید.

2-      فایل نوب را از سایت رسپبری دانلود کنید. سپس این فایل را با استفاده از Winrar و یا سایر نرم افزارهای فشرده سازی باز کنید.

3-      با شاخه‌ی \os\Raspbian رفته و سپس فایل flavours.json را به قسمی ویرایش کنید که تنها بخش raspbian  داشته باشد. درنظر داشته باشید که چنانچه بخشی با تگ Raspbian – Boot to Scratch وجود داشت آن را نیز حذف کنید. محتویات فایل باید چیزی شبیه زیر باشد.

{

"flavours": [

{

"name": "Raspbian",

"description": "A Debian wheezy port, optimised for the Raspberry Pi"

}]}

4-      در پوشه اصلی فایل recovery.cmdline را برای ویرایش باز کنید و سپس silentinstall را در انتهای آن بیافزایید. پس از اضافه کرده آن باید چیزی شبیه به خط زیر داشته باشید.

runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall

5-      محتویات باز شده و ویرایش شده را روی کارت حافظه کپی کنید.

6-      کارت حافظه را به برد متصل کرده و برد را روشن کنید و به مدت یک تا دو ساعت به حال خود بگذارید.

7-      برد را با استفاده از کابل به شبکه خود متصل کنید.

8-      با استفاده از پوتی و با وارد کردن IP برد بصورت SSH لاگین کنید و لذت ببرید. لازم به ذکر است حساب کاربری پیش فرض pi و پسورد raspberry می باشد. ضمنا برای بدست آوردن IP برد می توانید از نرم افزارهایی نظیر IP  اسکنر استفاده کنید.

 

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

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

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

در این وبلاگ من سعی ندارم مفاهیم بعضا خشک برنامه نویسی فانشکنال را بیان کنم. هدف من تنها اینست که بگویم برنامه نویسی شی گرا تنها روش برنامه نویسی نیست و در بسیاری از مسائل امروزه کارآمد هم نیست و همین امر شرکتهای بزرگی نظیر مایکروسافت را به فکر ایجاد زبان فانکشنال #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 ~

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