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

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

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

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

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

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

  • ۰
  • ۰

مدلی که ارلنگ برای همروندی و همزمانی استفاده می کند بر اساس مدل بازیگر (actor model) است. تمام چیزی که برای نوشتن نرم افزار های همروند در ارلنگ نیاز دارید در سه چیز خلاصه می شود: ساخت پروسه، ارسال پیام به پروسه و دریافت و خواندن پروسه ارسال شده می‌باشد. هر پروسه در ارلنگ دارای مفهومی بنام صندوق پستی است. پیام های ارسالی به هر پروسه درون این صندوق ذخیره می شود و پروسه می‌تواند براساس صلاح دید خود پیامهایش را بخواند و یا دور بریزد. برای ساختن پروسه جدید در ارلنگ از روش زیر می‌توان استفاده کرد:

F = fun() -> 2 + 2 end.

spawn(F).

Spawn به عنوان خروجی شناسه پروسه که به آن PID می گویند را بر می‌گرداند. از این PID می‌توان برای ارسال پیام به پروسه استفاده کرد. ارسال پیام به پروسه به عملگر "!" امکان پذیر است.

Pid ! hello.

زمانی که پیام ارسال شد گیرنده با استفاده از receive می تواند مقدار پیام را بخواند. مثال زیر برنامه کوچکی است که منتظر پیام می‌نشیند و حسب نوع و مقدار آن واکنشی را نشان می‌دهد که در این مثال محاسبه‌ی مساحت شکل مورد در خواست است.

-module(calculateGeometry).
-compile(export_all).

calculateArea() ->
	receive
		{rectangle, W, H} -> W * H;
		{circle, R} -> 3.14 * R * R;
		_ -> io:format("We can only calculate area of rectangles or circles.")
	end.

با استفاده از تابع c ماژول را کامپایل کرده و از تابع استفاده می‌کنیم.

c(calculateGeometry).

CalculateArea = spawn(calculateGeometry, calculateArea, []).

CalculateArea ! {circle, 2}.

هر پروسه با استفاده از تابع()self می تواند از شناسه خودش مطلع شود.

 

  • ۹۴/۱۲/۰۴
  • مهدی حسینی مقدم

Erlang

ارلنگ مقدماتی

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی