لیمبو (زبان برنامهنویسی)
لیمبو (به انگلیسی: Limbo) یک زبان برنامهنویسی برای نوشتن سیستمهای توزیعشدهاست و همینطور زبانی است که از آن برای نوشتن برنامههای کاربردی سیستمعامل اینفرنو استفاده شدهاست. این زبان در آزمایشگاههای بل توسط شان دوروارد، فیل وینترباتوم و راب پایک نوشته شدهاست. کامپایلر لیمبو کدهای مقصود مستقل از ماشین تولید میکند. ماشین مجازی دیس این کدها را تفسیر و اجرا میکند یا اینکه آنها را درست قبل از زمان اجرا برای بهبود کارایی کامپایل میکند. در نتیجه کلیه برنامههای سیستمعامل اینفرنو کاملاً پرتابل بوده و بر روی سختافزارها و معماریهای مختلفی اجرا میشوند.
طراحی شده توسط | شان دوروارد، فیل وینترباتوم و راب پایک |
---|---|
توسعهدهنده | آزمایشگاههای بل، ویتا نووا هولدینگز |
ظهوریافته در | ۱۹۹۵ |
سیستمعامل | اینفرنو |
پروانه | متنباز |
وبگاه | |
پیادهسازیهای بزرگ | |
ماشین مجازی دیس |
قابلیتها و ویژگیها
برخی از ویژگیهای این زبان عبارتند از:
- برنامهنویسی ماژولی
- رایانش همزمان
- کنترل نوع قوی در زمان کامپایل و زمان اجرا
- ارتباط بین پردازشی بر روی کانالهای مطبوع
- بازیافت حافظه خودکار
- انواع داده انتزاعی ساده
ماشین مجازی
ماشین مجازی دیس (Dis) که کد لیمبو را اجرا میکند، با دستورالعملهایی برای محاسبات، کنترل جریان، حرکت دادهها، ایجاد فرایند، همگامسازی و برقراری ارتباط بین فرایندها، بارگیری ماژولهای کد و پشتیبانی از انواع دادههای سطح بالاتر: رشتهها، آرایهها، لیستها و کانالهای ارتباطی از ترکیبی از شمارش مرجع و بازیافت حافظه در لحظه برای دادههای چرخهای استفاده میکند.
مثالها
لیمبو از تعاریف سبک آیدا به شکل زیر استفاده میکند:
name := type value;
name0,name1 : type = value;
name2,name3 : type;
name2 = value;
سلام دنیا
implement Command;
include "sys.m";
sys: Sys;
include "draw.m";
include "sh.m";
init(nil: ref Draw->Context, nil: list of string)
{
sys = load Sys Sys->PATH;
sys->print("Hello World!\n");
}
جستارهای وابسته
- سیستم عامل اینفرنو
- پلان ۹ از آزمایشگاه بل
- گو (زبان برنامهنویسی)، زبانی مشابه از گوگل
منابع
- ↑ "Dis Virtual Machine Specification". Vita Nuova. 2000. Retrieved 2 February 2015.
- ↑ Lorenz Huelsbergen and Phil Winterbottom. "Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization" (PDF).