ⓘ ام‌ال ، یک زبان برنامه‌نویسی تابعی همه منظوره است که توسط رابین میلنر و همکاران در اواخر دهه ۱۹۷۰ در دانشگاه ادینبورگ توسعه یافت. نحو این زبان از زبان برنامه‌نو ..

                                     

ⓘ ام‌ال

ام‌ال ، یک زبان برنامه‌نویسی تابعی همه منظوره است که توسط رابین میلنر و همکاران در اواخر دهه ۱۹۷۰ در دانشگاه ادینبورگ توسعه یافت. نحو این زبان از زبان برنامه‌نویسی آی‌سوییم الهام گرفته‌است.

کلمه ML از فوق زبان Meta Language گرفته شده‌است. ام‌ال برای بهبود بخشیدن به رویه اثبات در قضیه LFC طراحی شده‌است. این برای کاربرد آن در الگوریتم استنتاج نوع هیندلی- میلنر که به‌طور خودکار اکثر عبارت‌ها بدون نیاز به تفسیر نوع صریح شناخته شده‌است.

                                     

1. مرور کلی

ام‌ال معمولاً به عنوان یک زبان تابعی ناخالص یاد می‌شود چرا که به اثرات جنبی و بنابراین برنامه‌نویسی امری، بر خلاف زبان برنامه‌نویسی تابعی خالص مانند هاسکل، اجازه می‌دهد. به همین دلیل ام‌ال یک زبان برنامه‌نویسی چند نمونه‌ای multi-paradigm نیز عنوان می‌شود.

برنامه‌هایی که در این زبان نوشته می‌شود شامل عباراتی است که مخالف دستورات ارزیابی می‌شوند با وجود اینکه برخی از عبارات یک مقدار بدیهی را برمی‌گردانند که فقط برای اثرات جانبی ارزیابی می‌شوند.

مانند تمام زبان‌های برنامه‌نویسی تابعی، یک ویژگی کلیدی این زبان تابع است. تابع فاکتوریل را در کد زیر نگاه کنید:

یک کامپایلر استاندارد برای پی بردن به نوع استاتیک int -> int این تابع بدون اینکه کاربر نیاز داشته باشد یادداشت کند. می‌توان استنباط کرد که متغیر n فقط در عبارات از نوع عدد صحیح استفاده می‌شود و خودش هم باید از نوع عدد صحیح باشد و تمامی اعدادی که توسط عبارات تولید می‌شود از نوع عدد صحیح است.

خصوصیات ام‌ال شامل استراتژی سنجش فراخوانی با مقدار call – by – value، توابع درجه یک، مدیریت حافظه خودکار در مواجه با مجموعه داده‌های ناخواسته، چندریختی پارامتریک و انواع پویا، انواع استنتاج، انواع داده‌های جبری، آزمون الگو و جابه جایی استثناء است.

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

امروزه زبان‌های مختلفی در خانواده‌ام‌ال است دو گویش اصلی آن ام‌ال استاندارد و Caml است. اما بقیه شامل F# که یه پروژهٔ تحقیق باز که هدف.NET شرکت مایکروسافت بود نیز وجود دارند. ایده‌های ام‌ال در زبان‌های بی شماری نفوذ کرده‌است مانند هاسکل و Cyclone و Nemerle.

از توانایی‌های ام‌ال معمولاً در طراحی زبان بکار برده می‌شود (کامپایلرها، استفاده برای تحقیقات زیستی، سیستم‌های مالی و کاربردها شامل پایگاه داده‌های شجره نامه‌ها، برنامهٔ سرویس دهنده / سرویس گیرنده نظیر به نظیر.

                                     

2. مثال‌هایی از ام‌ال

زبان sml را به راحتی می‌توان یادگرفت برای این کار باید ان را به یک سطح بالاتر وارد کرد که به ان یک حلقه خواندن-محاسبه-چاپ یا repl می‌گویند. این یک جلسه تعاملی است که در ان معنی عبارت‌های از پیش تعیین شده مشخص می‌شود. بسیاری از پیاده‌سازی‌های sml شامل repl می‌شود از جمله sml/nj:

کد می‌تواند بعد از "-" وارد شود. به عنوان مثال برای محاسبه ۲*3+1:

sml با استنتاج در سطح بالا نشان می‌دهد که نتیجه دارای نوع "int" و مقدار "۷" می‌باشد.

سلام دنیا!!!

برنامه زیر برنامه "hello.sml" است:

که با دستور زیر می‌توان ان را کامپایل کرد:

$ mlton hello.sml

و با این دستور می‌توان ان را اجرا کرد:

$. /Hello world!

مرتب‌سازی درجی

مرتب‌سازی درجی برای اعداد صحیح صعودی است به اختصار به شرح زیر بیان می‌شود:

در اینجا ما از نشان "> > برای مرتب‌سازی در اینجا استفاده می‌کنیم:

نوع تابع insertionSort از نوع a * a -> bool -> a list -> a list می‌باشد.

                                     
  • امال به لاتین: Amale یک منطقه مسکونی در نپال است که در Janakpur Zone واقع شده است. امال نفر جمعیت دارد. فهرست شهرهای نپال مشارکت کنندگان ویکی پدیای
  • انگلیسی: profile در زبان مدلسازی یکپارچه یو ام ال یک مکانیزم گسترش عمومی به منظور سفارشی سازی مدل های یو ام ال برای زمینه ها و پلتفرم های خاص فراهم می کند
  • صفحه گسترده ام ال یک طرح اکس ام ال برای مایکروسافت آفیس Excel 2003 است. طرح های مرجع XML آفیس 2003 شامل پیمان مشخصات سرگشاده مایکروسافت یک بیانیه قانونی
  • آل میوزیک به انگلیسی: Allmusic در گذشته: آل میوزیک گاید به انگلیسی: All Music Guide یک پایگاه داده متادیتا در رابطه با موسیقی است و مالک آن آل
  • استاندارد ام ال به انگلیسی: Standard ML یا SML یک زبان برنامه نویسی همه منظوره مدولار تابعی با بررسی همزمان هنگام کامپایل و تشخیص خودکار نوع متغیرها
  • زبان مدل سازی یکپارچه به انگلیسی: Unified Modeling Language یا یو ام ال یک زبان مدلسازی همه منظوره استاندارد در زمینه مهندسی نرم افزار است که توسط
  • اکس ام ال ویرایشی از اس جی ام ال است که می کوشد پلی بین سادگی اچ تی ام ال و قدرت اس جی ام ال ایجاد کند. در واقع اکس ام ال زیر مجموعه ای از اس جی ام ال است
  • مرورگرهای وب توصیف می شود. تاکنون نسخه از اچ تی ام ال عرضه شده است. هر یک از برچسب های اچ تی ام ال معنا و مفهوم خاصی دارند و تأثیر مشخصی بر محتوا می گذارند
  • پروانه گنو ا ل جی پی ا ل یا پروانه کم تر فراگیر همگانی گنو به انگلیسی: GNU LGPL سرواژه GNU Lesser General Public License یکی از پروانه های نرم افزارهای