اکمل

اُکمل
پارادایم برنامه‌نویسیپارادایم برنامه‌نویسی: برنامه‌نویسی دستوری، برنامه‌نویسی تابعی، برنامه‌نویسی شیءگرا
طراحی شده توسطخاویر لیروی، Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez
توسعه‌دهندهINRIA
ظهوریافته در۱۹۹۶؛ ۲۸ سال پیش (۱۹۹۶-خطا: زمان نامعتبر}})
انتشار پایدار
۴٫۰۵٫۰ / ۴ اکتبر ۲۰۱۸؛ ۶ سال پیش (۲۰۱۸-04}})[۱]
static، وابستگی زیاد و کم به نوع، inferred
زبان پیاده‌سازی
OCaml, سی (زبان برنامه‌نویسی)
بن‌سازه رایانشآی‌ای-۳۲، X86-64، معماری پاور، اسپارک، معماری آرم
سیستم‌عاملچندسکویی: یونیکس، مک‌اواس، مایکروسافت ویندوز
پروانهگنو ال‌جی‌پی‌ال
.ml, .mli
وبگاه
گویش
اف شارپ، JoCaml, MetaOCaml, OcamlP3l, Reason
متأثر از
Caml Light, کول (زبان برنامه‌نویسی),[نیازمند منبع] استاندارد ام‌ال
تأثیر گذاشته بر
ATS, Elm، اف شارپ، F*، Haxe، اوپا، راست (زبان برنامه‌نویسی)، اسکالا

Objective Caml در ویکی‌کتاب (انگلیسی)

اُکمل (به انگلیسی: OCaml) در اصل شناخته شده به عنوان «کمل شئ گرا»، پیاده‌سازی عمدهٔ زبان برنامه‌نویسی کمل ۱۹۹۶ ساخته توسط ژاویر لیروی و سایرین ساخته شد. اُکمل زبان کمل را را به ساختارهای شئ گرا گسترش می‌دهد.

ابزارهای اکمل شامل یک مفسر سطح بالا، یک کامپایلر بایت‌کد، یک مدیر بسته/پکیج منیجر (OPAM)، و یک کامپایلر آپتیمایز کننده به زبان ماشین است. این زبان کتابخانهٔ استاندارد بزرگی دارد که آن را در بسیاری از کاربردهایی که پایتون و پرل استفاده می‌شوند کاربردی می‌کند، همین‌طور ساختارهای قویا مدولار شئ گرای این زبان آن را برای مهندسی نرم‌افزار در سطح بزرگ کارآمد می‌کند. اکمل یک جانشین برای کمل لایت است. سرواژهٔ CAML مخفف Categorical Abstract Machine Language(زبان رده‌ای ماشین انتزاعی) است، اگر چه CAML از این ماشین انتزاعی دل کنده.

اکمل یک زبان پروژهٔ آزاد و متن باز است و توسط INRIA نگهداری می‌شود. در سالهای اخیر، زبان‌های زیادی به عناصر اکمل جذب شده‌اند، خصوصاً اف شارپ و اسکالا.

فلسفه

[ویرایش]

زبان‌های مشتق شده از ام‌ال به طور خاص نسبت به سیستم تایپ و همچنین کامپایلرهایی که قادر به استنتاج نوع داده هستند شناخته می‌شوند. اکمل برنامه‌نویسی تابعی، امری، و شئ گرا را تحت یک سیستم نوع دادهٔ به هم آمیخته. ام‌ال-مانند دربر گرفته. این یعنی لازم نیست که برنامه‌نویس کاملاً با برنامه‌نویسی تابعی خالص آشنا باشد تا بتواند از زبان استفاده کند.

سیستم نوع دادهٔ اکمل می‌تواند در کاهش مشکلات برنامه در حین اجرا کمک کند. اگرچه، این خود برنامه‌نویس را مجبور می‌کند که خود را با شرایط سیستم نوع وفق دهد، که ممکن است نیاز به فکر و توجه دقیق داشته باشد. یک کامپایلر استنتاج کنندهٔ نوع می‌تواند به شدت نیاز به نشانه گذاری‌های دستی را کاهش دهد (برای مثال، نوع دادهٔ متغیرها و اثر توابع نیاز نیست آنطور که در جاوا مشخص می‌شود، صریحاً مشخص شود). به هر حال، استفادهٔ مؤثر از سیستم نوع دادهٔ اکمل ممکن است نیاز به تجربهٔ بیشتری برای برنامه‌نویس دارد.

منابع

[ویرایش]
  1. "Releases – OCaml". ocaml.org.