اُکمل ( به انگلیسی: OCaml ) در اصل شناخته شده به عنوان «کمل شئ گرا»، پیاده سازی عمدهٔ زبان برنامه نویسی کمل ۱۹۹۶ ساخته توسط ژاویر لیروی و سایرین ساخته شد. اُکمل زبان کمل را را به ساختارهای شئ گرا گسترش می دهد.
ابزارهای اکمل شامل یک مفسر سطح بالا، یک کامپایلر بایت کد، یک مدیر بسته/پکیج منیجر ( OPAM ) ، و یک کامپایلر آپتیمایز کننده به زبان ماشین است. این زبان کتابخانهٔ استاندارد بزرگی دارد که آن را در بسیاری از کاربردهایی که پایتون و پرل استفاده می شوند کاربردی می کند، همین طور ساختارهای قویا مدولار شئ گرای این زبان آن را برای
مهندسی نرم افزار در سطح بزرگ کارآمد می کند. اکمل یک جانشین برای کمل لایت است. سرواژهٔ CAML مخفف Categorical Abstract Machine Language ( زبان رده ای ماشین انتزاعی ) است، اگر چه CAML از این ماشین انتزاعی دل کنده.
اکمل یک زبان پروژهٔ آزاد و
متن باز است و توسط INRIA نگهداری می شود. در سالهای اخیر، زبان های زیادی به عناصر اکمل جذب شده اند، خصوصاً
اف شارپ و اسکالا.
زبان های مشتق شده از
ام ال به طور خاص نسبت به سیستم تایپ و همچنین کامپایلرهایی که قادر به استنتاج
نوع داده هستند شناخته می شوند. اکمل برنامه نویسی تابعی، امری، و شئ گرا را تحت یک
سیستم نوع دادهٔ به هم آمیخته. ام ال - مانند دربر گرفته. این یعنی لازم نیست که برنامه نویس کاملاً با
برنامه نویسی تابعی خالص آشنا باشد تا بتواند از زبان استفاده کند.
سیستم نوع دادهٔ اکمل می تواند در کاهش مشکلات برنامه در حین اجرا کمک کند. اگرچه، این خود برنامه نویس را مجبور می کند که خود را با شرایط سیستم نوع وفق دهد، که ممکن است نیاز به فکر و توجه دقیق داشته باشد. یک کامپایلر استنتاج کنندهٔ نوع می تواند به شدت نیاز به نشانه گذاری های دستی را کاهش دهد ( برای مثال، نوع دادهٔ متغیرها و اثر توابع نیاز نیست آنطور که در جاوا مشخص می شود، صریحاً مشخص شود ) . به هر حال، استفادهٔ مؤثر از سیستم نوع دادهٔ اکمل ممکن است نیاز به تجربهٔ بیشتری برای برنامه نویس دارد.