حساب کاربری
​
زمان تقریبی مطالعه: 2 دقیقه
لینک کوتاه

الیکسیر (زبان برنامه‌نویسی)

زبان برنامه‌نویسی تابعی

الیکسیر (به انگلیسی: Elixir) یک زبان برنامه‌نویسی تابعی، همروند با کارایی عمومی است که بر روی ماشین مجازی ارلنگ (BEAM) اجرا می‌شود. الیکسیر بر روی ارلنگ ساخته شده‌است تا بتواند امکان نوشتن برنامه‌های توزیع‌شده، مقاوم در برابر خطا، زنده و بدون وقفه را ارائه کند، اما با گسترش این امکانات، ویژگی‌های برنامه‌نویسی متا با استفاده از ماکروها و چندریختی از طریق پروتکل‌ها را نیز فراهم می‌کند.

الیکسیر (زبان برنامه‌نویسی)
پارادایم برنامه‌نویسیپارادایم برنامه‌نویسی: برنامه‌نویسی تابعی، concurrent، رایانش توزیع‌شده، process-oriented
ظهوریافته در۲۰۱۱؛ ۱۲ سال پیش (۲۰۱۱)
انتشار پایدار
۱٫۵٫۱
۱ اوت ۲۰۱۷؛ ۵ سال پیش (۲۰۱۷-۰۸-01)
شیوه نوع‌دهی
dynamic، وابستگی زیاد و کم به نوع
بن‌سازه رایانشارلنگ
پروانهمجوز آپاچی
پسوند(های) نام پرونده
.ex, .exs
وبگاه
elixir-lang.org
متأثر از
ارلنگ، روبی (زبان برنامه‌نویسی)، کلوژر
تأثیر گذاشته بر
LFE

فهرست

  • ۱ تاریخچه
  • ۲ ویژگی‌ها
  • ۳ مثال‌ها
  • ۴ پیوند به بیرون

تاریخچه

خوزه ولیم (José Valim) سازنده زبان برنامه‌نویسی الیکسیر است، یک پروژه تحقیق و توسعه در شرکت Plataformatec. هدف او فراهم کردن گسترش‌پذیری و بهره‌وری بیشتر در ماشین مجازی ارلنگ بود، به شکلی که با ابزارها و اکوسیستم ارلنگ سازگار باقی بماند.

ویژگی‌ها

  • یک زبان که به بایت‌کد ماشین مجازی ارلنگ (BEAM) کامپایل می‌شود.
  • همه چیز یک عبارت است.
  • توابع ارلنگ به دلیل کامپایل به بایت‌کد ارلنگ و برعکس، می‌توانند بدون داشتن هیچ تأثیری بر روی سرعت اجرا فراخوانی شوند.
  • برنامه‌نویسی متا امکان تغییر مستقیم AST را فراهم می‌کند.
  • امکان چندریختی از طریق مکانیزمی که «پروتکل» نامیده می‌شود. مانند کلوژر، پروتکل‌ها یک مکانیزم توزیع پویا را فراهم می‌کنند.
  • پشتیبانی از مستندات از طریق docstringهای مشابه پایتون.
  • برنامه‌نویسی همروند بدون اشتراک چیزی از طریق انتقال پیام (مدل Actor)
  • همروندی کم حجم با استفاده از ابزارهای و مکانیزم‌های ارلنگ و سینتکس ساده (برای مثال Task)
  • انطباق الگو
  • پشتیبانی از یونیکد و رشته‌های UTF-8.

مثال‌ها

مثال‌های مقابل می‌توانند در یک پوسته iex، یا با ذخیره کردن در یک پرونده و تایپ دستور elixir <filename> از طریق خط فرمان اجرا شوند.

مثال Hello World کلاسیک:

iex> IO.puts "Hello World!"
Hello World!

ادراک

iex> for n <- [1,2,3,4,5], rem(n,2) == 1, do: n*n
[1, 9, 25]

انطباق الگو

iex> [1, a] = [1, 2]
iex> a
2

iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}
iex> a
"world"

ماژول‌ها

defmodule Fun do
  def fib(0), do: 0
  def fib(1), do: 1
  def fib(n) do
    fib(n-2) + fib(n-1)
  end
end

پیوند به بیرون

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