लॉगटॉक

लॉगटॉक ऑब्जेक्ट ओरिएंटेड तर्क प्रोग्रामिंग भाषा है, जो बड़े स्तर पर प्रोग्रामिंग के लिए उपयुक्त फीचर सेट के साथ प्रोलॉग भाषा का विस्तार और लाभ उठाती है। यह एनकैप्सुलेशन और डेटा छिपाने, चिंताओं को अलग करने और उन्नत कोड पुन: उपयोग के लिए सहायता प्रदान करता है। लॉगटॉक कुछ ऑपरेटरों और निर्देशों के अतिरिक्त मानक प्रोलॉग सिंटैक्स का उपयोग करता है।

लॉगटॉक भाषा कार्यान्वयन एक ओपन सोर्स लाइसेंस के अनुसार वितरित किया जाता है और बैक-एंड कंपाइलर के रूप में एक प्रोलॉग कार्यान्वयन (आधिकारिक और वास्तविक मानकों के अनुरूप) का उपयोग करके चलाया जा सकता है।

विशेषताएं
लॉगटॉक का उद्देश्य वस्तु-उन्मुख प्रोग्रामिंग और तर्क प्रोग्रामिंग के लाभों को साथ लाना है। ऑब्जेक्ट-ओरिएंटेशन सॉफ्टवेयर की असतत, पुन: प्रयोज्य इकाइयों के विकास पर जोर देता है, जबकि तर्क प्रोग्रामिंग प्रत्येक वस्तु के ज्ञान को घोषणात्मक विधि से प्रस्तुत करने पर जोर देती है।

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा के रूप में, लॉगटॉक की प्रमुख विशेषताओं में वर्ग (कंप्यूटर विज्ञान) (वैकल्पिक मेटाक्लासेस के साथ) और प्रोटोटाइप-आधारित प्रोग्रामिंग, पैरामीट्रिक ऑब्जेक्ट्स, दोनों प्रोटोकॉल (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) (इंटरफ़ेस (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)), श्रेणियां (घटक, पक्ष आधारित प्रोग्रामिंग, सॉफ़्टवेयर हॉट पैच हॉट पैचिंग), एकाधिक वंशानुक्रम , पब्लिक/प्रोटेक्टेड/प्राइवेट इनहेरिटेंस, घटना-संचालित प्रोग्रामिंग, उच्च -स्तरीय मल्टी-थ्रेडिंग प्रोग्रामिंग, प्रतिबिंब (कंप्यूटर विज्ञान), और प्रलेखन की स्वचालित पीढ़ी के लिए समर्थन सम्मिलित है।।

प्रोलॉग प्रोग्रामर्स के लिए, लॉगटॉक व्यापक पोर्टेबिलिटी प्रदान करता है, जिसमें विधेय नामस्थान (स्थिर और गतिशील वस्तुओं दोनों का समर्थन), सार्वजनिक/संरक्षित/निजी वस्तु विधेय, सहसंयोजन, इंटरफ़ेस और कार्यान्वयन के बीच अलगाव, सरल और सहज मेटा-विधेय शब्दार्थ, लैम्ब्डा कलन, निश्चित खंड, व्याकरण, शब्द-विस्तार तंत्र, और सशर्त संकलन सम्मिलित हैं। यह वास्तविक मानक कोर मॉड्यूल कार्यक्षमता (आंतरिक रूप से, मॉड्यूल को प्रोटोटाइप के रूप में संकलित किया जाता है) के आधार पर मॉड्यूल प्रणाली भी प्रदान करता है।

उदाहरण
लॉगटॉक का सिंटैक्स प्रोलॉग पर आधारित है: किसी वस्तु को परिभाषित करना: ऑब्जेक्ट का उपयोग करना, यह मानते हुए कि my_first_object.lgt फ़ाइल में सहेजा गया है: निजी विधेय तक पहुँचने का प्रयास त्रुटि देता है:

अस्पष्ट फलन
अज्ञात विधेय (लैम्ब्डा एक्सप्रेशंस) के लिए लॉगटॉक निम्नलिखित सिंटैक्स का उपयोग करता है: बिना मुक्त वेरिएबल्स के एक सरल उदाहरण और सूची मानचित्रण विधेय का उपयोग करना है: करी का भी समर्थन किया जाता है। उपरोक्त उदाहरण को इस प्रकार लिखा जा सकता है:

प्रोलॉग बैक-एंड संगतता
समर्थित बैक-एंड प्रोलॉग कंपाइलर्स में बी-प्रोलॉग, सियाओ प्रोलॉग (प्रोग्रामिंग भाषा), सीएक्सप्रोलॉग, ईसीलीपीएसई, जीएनयू प्रोलॉग, [http: //www.jiprolog.com/ जिप्रोलॉग], क्विंटस प्रोलॉग, स्क्रीयर प्रोलॉग, सिक्सस्टस प्रोलॉग, एसडब्ल्यूआई- प्रोलॉग, जेपी (प्रस्तावना), ट्रेला प्रोलॉग, एक्सएसबी, और वाईएपी (प्रोलॉग) सम्मिलित हैं। लॉगटॉक ऑब्जेक्ट और श्रेणियों के भीतर बैक-एंड प्रोलॉग कंपाइलर लाइब्रेरी के उपयोग की अनुमति देता है।

डेवलपर उपकरण
लॉगटॉक में ऑन-लाइन सहायता, एक दस्तावेजीकरण उपकरण (जो पीडीएफ और एचटीएमएल फाइलें उत्पन्न कर सकता है), एक इकाई आरेख जनरेटर उपकरण, एक अंतर्निर्मित डीबगर (अधिकांश प्रोलॉग कंपाइलर्स पर पाए जाने वाले पारंपरिक प्रक्रिया बॉक्स मॉडल के विस्तारित संस्करण के आधार पर) की सुविधा है। कोड कवरेज विश्लेषण के साथ एक इकाई परीक्षण संरचना, और चयनित बैक-एंड प्रोलॉग प्रोफाइलर्स और ग्राफिकल ट्रैसर के साथ भी संगत है।

अनुप्रयोग
लॉगटॉक का उपयोग ISO 10303-21 डेटा मॉडल को संसाधित करने के लिए किया गया है जिसका उपयोग उत्पाद निर्माण जानकारी के आदान-प्रदान के लिए किया जाता है। इसका उपयोग तर्क प्रणाली को प्रायुक्त करने के लिए भी किया गया है जो वरीयता तर्क और बाधाओं को हल करने की अनुमति देता है।

यह भी देखें

 * बुध (प्रोग्रामिंग भाषा)
 * ओज़ (प्रोग्रामिंग भाषा)
 * प्रोलॉग ++
 * विजुअल प्रोलॉग

बाहरी संबंध

 * Logtalking blog
 * From Plain Prolog to Logtalk Objects: Effective Code Encapsulation and Reuse (Invited Talk). Paulo Moura. Proceedings of the 25th International Conference on Logic Programming (ICLP), July 2009. LNCS 5649. Springer-Verlag Berlin Heidelberg". (Slides)
 * From Plain Prolog to Logtalk Objects: Effective Code Encapsulation and Reuse (Invited Talk). Paulo Moura. Proceedings of the 25th International Conference on Logic Programming (ICLP), July 2009. LNCS 5649. Springer-Verlag Berlin Heidelberg". (Slides)