آلیس (زبان برنامهنویسی)
آلیس یک زبان برنامهنویسی است که توسط آزمایشگاه برنامهنویسی در آلمان، شهر ساربوکن و دانشگاه سارلند طراحی شد که این زبان لهجهای از ML استاندارد است و همراه با پشتیبانی از فراخوانی در زمان احتیاج، همروندی، چند نخی، رایانش توزیع شده همراه با پردازش از راه دور و برنامهنویسی محدودیت است.
بررسی اجمالی
آلیس زبان Ml استاندارد را به تعدادی از راهها گسترش داد که از حالت قبل خود متمایز بودند. Alice ویژگی همروندی را به عنوان بخشی از زبان پایه از طریق استفاده از نوع "فیوچر" فراهم میکند که نشاندهنده ارزش یک نوع به وسیله نخهای مستقل اجرا است. نخی که از مقدار فیوچر (آینده) استفاده میکند تلاش برای دسترسی به مقدار را تا زمانی که نخ محاسبات خود را کامل نکردهاست، مسدود میشود. یک مفهوم مرتبط نیز ارائه شدهاست که به عنوان "پرامیس (قول)" شناخته میشود که به نخ اجازه میدهد که مقدار فیوچر را آماده کند تا برای محاسبات نخ دیگر استفاده شود. نوع فیوچر و پرامیس متغیرهایی هستند که برای اجرای هماهنگ سازی جریان داده استفاده میشود.
آلیس همچنین ویژگیهایی فراهم میکند که به برنامهنویس اجازه میدهد که از استراتژی فراخوانی هنگام نیاز در برنامههایش در مقابل استراتژبهای سنتی ارزیابی حریص که در استاندارد ML به کار میرود استفاده کند. زبان Haskell یک زبان تابعی است که فراخوانی هنگام نیاز را آماده میکند. Alice ارزیابی حریص را به عنوان پیش فرض خود پذیرفته است. نیاز برنامهنویس، به صراحت بیان میکند که محاسبات به هنگام نیاز فراخوانی شود. این تفاوت نسبت به هاسکل، مدل فراخوانی به هنگام نیاز را بهطور پیش فرض قبول میکند.
اجرای آلیس از دانشگاه سارلند که از SEAM (ماشین انتزاعی توسعه پذیر ساده) استفاده میکند؛ که نرمافزاری ساده، و ویژگیهای کامپایل درجا به بایت کد به همان خوبی زبان ماشین x86 است.
نسخههای ابتدایی Alice در Mozart/Oz VM اجرا میشدند، که رابط بین Alice و کد OZ بودند.
فرایند صدازدن از دور در ماشین مجازی به ماشین مجازی بستگی دارد، زیرا دلیل آن در واقع ممکن است ارسال کد برای محاسبه از یک کامپیوتر به دیگری باشد.