ليمبو (Limbo)، هي لغة برمجة لكتابة النظم الموزعة وهي اللغة المستخدمة لكتابة برمجيات تطبيقية من أجل نظام التشغيل Inferno.[1][2] وقد صممها في مختبرات بل شون دروارد وفيل ينتربوتوم وروب بايك.
ويولد مصرف (برمجة) Limbo كود كائن غير قائم على معمارية الحاسوب والذي بعد ذلك يتم تفسيره عن طريق آلة العرض الافتراضي أو تجميعه قبل وقت التشغيل من أجل تحسين الاداء. وبالتالي فكل تطبيقات لغة Limbo هي محمولة بشكل كامل عبر كل منصات Inferno.
وقد كان مدخل Limbo للتزامن من ايحاء CSP للعالم هور.
مزايا اللغة
تدعم لغة لمبو المزايا الآتية:
- البرمجة التركيبية.
- البرمجة المتزامنة.
- مراجعة نوع قوية في التجميع ووقت التشغيل.
- الاتصالات ما بين العمليات على قنوات مكتوبة.
- جمع القمامة الآلي.
- أنواع البيانات المجردة البسيطة.
آلة افتراضيّة
آلة ديس (Dis) الافتراضيّة الّتي تنفّذ شفرة ليمبو هي آلة افتراضيّة تشبه مجموعة تعليمات حاسوبية مركبة، مع تعليمات للحِساب، وإنشاء تدفق السيطرة، حركة بيانات، عمليّات وَأيضًا المُزامنة والتواصل بين العمليّات، وتحميل مكتبات الشِفرة وَدعم أنواع البيانات ذات المُستوى العالي: سلاسل نصيَّة، مصفوفات، قوائم، وأيضًا قنوات التواصل.[3] تستَخدم إحصاء مراجع هجين وَجابي قُمامة بالوقت الحقيقيّ للبيانات الدوّارة.[4]
أمثلة
تستخدم لغة لمبو تعريفات نمط أيدا (لغة برمجة) كما في:
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"); }
كتب
تم وصف الطبعة الثالثة من نظام تشغيلInferno ولغة برمجة لمبو في كتاب "Inferno Programming with Limbo" [الرقم الدولي للكتاب ] ( شيستر: John Wiley & Sons, 2003))، عن طريق [فيليب ستانلي ماربل]. و كتاب أخر هو "The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System" بقلم مارتن أتكينز، وتشارلز فورسيث وروب بايك وهوارد تريكي، الذي شُرع فيه ولكن لم يصدر مطلقًا.
مقالات ذات صلة
- The
- The predecessor of Limbo.
- غو - Similar language from Google
مراجع
- Lorenz Huelsbergen and Phil Winterbottom. "Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization" ( كتاب إلكتروني PDF ). مؤرشف من الأصل ( كتاب إلكتروني PDF ) في 3 مارس 2019.
- "Dis Virtual Machine Specification". Vita Nuova. 2000. مؤرشف من الأصل في 13 نوفمبر 201602 فبراير 2015.
- "Dis Virtual Machine Specification". Vita Nuova. 2000. مؤرشف من الأصل في 27 سبتمبر 201802 فبراير 2015.
- Lorenz Huelsbergen and Phil Winterbottom. "Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization" ( كتاب إلكتروني PDF ). مؤرشف من الأصل ( كتاب إلكتروني PDF ) في 3 مارس 2019.
وصلات خارجية
- Vita Nuova page on Limbo
- A Descent into Limbo by Brian Kernighan
- The Limbo Programming Language by Dennis M. Ritchie and Addendum by Vita Nuova.
- Inferno Programming with Limbo by Phillip Stanley-Marbell
- Threaded programming in the Bell Labs CSP style
- Limbo on Google Directory