जानूस (समवर्ती बाधा प्रोग्रामिंग भाषा)

जानूस एक कंप्यूटर प्रोग्रामिंग भाषा है जिसे 1990 में पेपर एक्टर्स में समवर्ती बाधा (तर्क) प्रोग्रामिंग के एक विशेष कथन के रूप में के. कान और विजय ए. सारस्वत द्वारा आंशिक रूप से वर्णित किया गया है। यह बिना पश्चअनुमार्गण एक समवर्ती बाधा तर्क प्रोग्रामिंग भाषा है।

जानूस मॉडल समरूपता बैग चैनलों के उपयोग के माध्यम से कोड जिसे एक प्रक्रिया को संदेश भेजने की आवश्यकता होती है, ऐसा एक बैग को दूसरे बैग और संदेश के एकल बैग को भेजने के लिए बाध्य करता है। दूसरा बैग बाद में संदेश भेजने के लिए बाध्य है।

कार्यविधि बैग को एक सवरूप से मिलान करके संदेश प्राप्त करती है जो कहती है कि यह कुछ एकल और कुछ अन्य बैग का मिलन है। बैग चैनलों का तर्क एक्टर मॉडल द्वारा साझा की गई गुण का उत्पादन करता है, अर्थात् संदेशों के आगमन के क्रम की कोई निश्चितता नहीं है। चूँकि, एक्टर मॉडल में एक्टर के विपरीत, जानूस में प्रक्रियाएं उनके मेलबॉक्स के चारों ओर से बोलने के रूप में निकल सकती हैं | बैग, एक से अधिक पकड़ सकते हैं। मेलबॉक्स को चारों ओर से पकड़ करने और एक से अधिक को रखने की यह क्षमता कंप्यूटर प्रोग्रामिंग भाषा टूनटॉक कंप्यूटर प्रोग्रामिंग भाषा वंशागत में मिली है, जो जानूस से प्रभावित है।

जानूस, प्रोग्रामिंग भाषा, का नाम जानूस (पौराणिक कथाओं), दो-मुंह वाले रोमन देवता के नाम पर रखा गया है, क्योंकि जानूस में प्रत्येक तार्किक चर के दो चेहरे हैं, दो स्थितियाँ जिन्हें तर्क के रूप में पारित किया जा सकता है। इन्हें पूछने वाला और बताने वाला कहा जाता है। ये क्रमशः, चर के गुण (या गुण की कुछ विशेषता) के गुण पूछने का अधिकार और गुण बताने का अधिकार (या गुण क्या हो सकता है पर कुछ बाधा बताने के लिए) का प्रतिनिधित्व करते हैं। प्रश्नकर्ता और बताने वाले कथन को एक दूसरे से स्वतंत्र रूप से तर्क के रूप में पारित किया जा सकता है। किसी भी अधिकार का अर्थ दूसरे अधिकार से नहीं है। भाषा का वाक्य-विश्लेषण बताने वाला  की अनुकरण करने या इसे एक से अधिक बार प्रयोग करने से रोकता है। कान और सारस्वत के अनुसार, तार्किक विरोधाभास को स्थिर रूप से रोका जाता है।

संदर्भ

 * VA Saraswat, KM Kahn, J Levy (1990). "Janus: A step towards distributed constraint programming." NACLP.
 * VA Saraswat, M Rinard, P Panangaden (1991). "The semantic foundations of concurrent constraint programming." POPL.
 * David Gudeman, Koenraad De Bosschere, Saumya K. Debray (1992). "jc: An Efficient and Portable Sequential Implementation of Janus". Proc. Joint International Conference and Symposium on Logic Programming.