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

जानूस एक कंप्यूटर प्रोग्रामिंग भाषा है जिसे 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.