جانوس (لغة برمجة القيود المتزامنة)
Janus هي لغة برمجة حاسوبية تم وصفها جزئيًا بواسطة K. Kahn و Vijay A. Saraswat في ورقة "Actors as a special case of concurrent constraint (logic) programming" في عام 1990. [ 1 ] إنها لغة قيود متزامنة بدون تراجع.
يُحاكي نموذج Janus التزامن باستخدام قنوات الحقائب . يقوم الكود الذي يحتاج إلى إرسال رسالة إلى عملية ما بذلك عن طريق تقييد حقيبة لتكون اتحاد حقيبة أخرى وحقيبة الرسالة الفردية. ثم تُصبح الحقيبة الأخرى متاحة للتقييد لإرسال رسائل لاحقة.
تستقبل العملية الرسالة بمطابقة الحقيبة مع نمط يُشير إلى أنها اتحاد بين عنصر منفرد وحقيبة أخرى. ينتج عن منطق قنوات الحقائب خاصية مشتركة مع نموذج الممثل ، وهي أن ترتيب وصول الرسائل غير مضمون. مع ذلك، وعلى عكس الممثلين في نموذج الممثل، تستطيع العمليات في جانوس تمرير "صناديق بريدها" - إن صح التعبير - على شكل حقائب، ويمكنها استيعاب أكثر من صندوق. هذه القدرة على تمرير صناديق البريد واستيعاب أكثر من صندوق موروثة في لغة برمجة الحاسوب تون توك ، المتأثرة بجانوس.
لغة البرمجة يانوس، سميت على اسم يانوس ، الإله الروماني ذو الوجهين، لأن كل متغير منطقي فيها له وجهان، أي جانبان يمكن تمريرهما كوسيطين. يُطلق عليهما اسم "السائل" و " المُخبر" . يُمثلان، على التوالي، الحق في طلب قيمة المتغير (أو إحدى خصائصها) والحق في تحديد هذه القيمة (أو تحديد قيد عليها). يمكن تمرير جانبي "السائل" و"المُخبر" كوسيطين بشكل مستقل عن بعضهما، فلا يستلزم أحدهما الآخر. يمنع بناء الجملة في اللغة نسخ "المُخبر" أو استخدامه أكثر من مرة. كما يمنع النظام التناقض المنطقي بشكل ثابت، وفقًا لكاهن وساراسوات.
مراجع
- ↑ خان، ك.؛ ساراسوات، فيجاي أ. (1 أكتوبر 1990). "الممثلون كحالة خاصة من برمجة القيود المتزامنة (المنطقية)" . إشعارات ACM SIGPLAN . 25 (10): 57-66 . doi : 10.1145/97946.97955 . تم الاسترجاع في 29 أكتوبر 2019 .
- VA Saraswat, KM Kahn, J Levy (1990). "Janus: خطوة نحو برمجة القيود الموزعة." NACLP.
- VA Saraswat, M Rinard, P Panangaden (1991). "الأسس الدلالية لبرمجة القيود المتزامنة." POPL.
- ديفيد غودمان، كونراد دي بوسشير، سوميا ك. ديبري (1992). "jc: تطبيق تسلسلي فعال وقابل للنقل لـ Janus". وقائع المؤتمر الدولي المشترك والندوة حول البرمجة المنطقية.
- لغات البرمجة المتزامنة
- لغات البرمجة المنطقية
- لغات البرمجة المقيدة
