लॉगटॉक: Difference between revisions
(Created page with "{{Infobox programming language |name = Logtalk |paradigm = Logic programming, object-oriented programming, prototype-based programming |year = {{Start date and age...") |
No edit summary |
||
Line 16: | Line 16: | ||
}} | }} | ||
लॉगटॉक | लॉगटॉक [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]] | ऑब्जेक्ट-ओरिएंटेड [[ तर्क प्रोग्रामिंग ]] लैंग्वेज है, जो [[बड़े पैमाने पर प्रोग्रामिंग]] के लिए उपयुक्त फीचर सेट के साथ [[प्रोलॉग]] लैंग्वेज का विस्तार और लाभ उठाती है।<ref name="moura 2003">Paulo Moura (2003). Logtalk: Design of an Object-Oriented Logic Programming Language. PhD thesis. Universidade da Beira Interior</ref> यह सूचना छिपाने, चिंताओं को अलग करने और उन्नत [[कोड पुन: उपयोग]] के लिए सहायता प्रदान करता है।<ref name="moura 2003" />लॉगटॉक कुछ ऑपरेटरों और निर्देशों के अतिरिक्त मानक प्रोलॉग सिंटैक्स का उपयोग करता है। | ||
लॉगटॉक भाषा कार्यान्वयन | लॉगटॉक भाषा कार्यान्वयन [[ओपन सोर्स लाइसेंस]] के तहत वितरित किया जाता है और प्रोलॉग कार्यान्वयन (आधिकारिक और वास्तविक मानकों के अनुरूप) का उपयोग करके चलाया जा सकता है।<ref name="moura 2003" />[[ आगे और पीछे समाप्त होता है ]] | बैक-एंड कंपाइलर के रूप में। | ||
== विशेषताएं == | == विशेषताएं == | ||
लॉगटॉक का उद्देश्य वस्तु-उन्मुख प्रोग्रामिंग और तर्क प्रोग्रामिंग के लाभों को | लॉगटॉक का उद्देश्य वस्तु-उन्मुख प्रोग्रामिंग और तर्क प्रोग्रामिंग के लाभों को साथ लाना है।<ref name="moura 2003" />ऑब्जेक्ट-ओरिएंटेशन सॉफ्टवेयर की असतत, पुन: प्रयोज्य इकाइयों के विकास पर जोर देता है, जबकि तर्क प्रोग्रामिंग प्रत्येक वस्तु के ज्ञान को घोषणात्मक तरीके से प्रस्तुत करने पर जोर देती है। | ||
वस्तु-उन्मुख प्रोग्रामिंग भाषा के रूप में, लॉगटॉक की प्रमुख विशेषताओं में वर्ग (कंप्यूटर विज्ञान) (वैकल्पिक [[मेटाक्लास]]ेस के साथ) और [[प्रोटोटाइप-आधारित प्रोग्रामिंग]], पैरामीट्रिक ऑब्जेक्ट्स, दोनों के लिए समर्थन शामिल है।<ref>{{Cite conference | doi = 10.1007/978-3-642-20589-7_4| title = लॉगटॉक पैरामीट्रिक ऑब्जेक्ट्स के लिए प्रोग्रामिंग पैटर्न| conference = Applications of Declarative Programming and Knowledge Management| volume = 6547| series = Lecture Notes in Computer Science| year = 2011| last1 = Moura | first1 = Paulo| isbn = 978-3-642-20588-0}}</ref> [[प्रोटोकॉल (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)]] ([[इंटरफ़ेस (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)]]), श्रेणियां (घटक, [[ पहलू आधारित प्रोग्रामिंग ]], सॉफ़्टवेयर हॉट पैच#हॉट पैचिंग), [[ एकाधिक वंशानुक्रम ]], पब्लिक/प्रोटेक्टेड/प्राइवेट इनहेरिटेंस, [[घटना-संचालित प्रोग्रामिंग]], हाई -लेवल मल्टी-थ्रेडिंग प्रोग्रामिंग,<ref>{{Cite book | doi = 10.1007/978-3-540-77442-6| title = घोषणात्मक भाषाओं के व्यावहारिक पहलू| volume = 4902| series = Lecture Notes in Computer Science| year = 2008| isbn = 978-3-540-77441-9}}</ref> [[प्रतिबिंब (कंप्यूटर विज्ञान)]], और प्रलेखन की स्वचालित पीढ़ी। | वस्तु-उन्मुख प्रोग्रामिंग भाषा के रूप में, लॉगटॉक की प्रमुख विशेषताओं में वर्ग (कंप्यूटर विज्ञान) (वैकल्पिक [[मेटाक्लास]]ेस के साथ) और [[प्रोटोटाइप-आधारित प्रोग्रामिंग]], पैरामीट्रिक ऑब्जेक्ट्स, दोनों के लिए समर्थन शामिल है।<ref>{{Cite conference | doi = 10.1007/978-3-642-20589-7_4| title = लॉगटॉक पैरामीट्रिक ऑब्जेक्ट्स के लिए प्रोग्रामिंग पैटर्न| conference = Applications of Declarative Programming and Knowledge Management| volume = 6547| series = Lecture Notes in Computer Science| year = 2011| last1 = Moura | first1 = Paulo| isbn = 978-3-642-20588-0}}</ref> [[प्रोटोकॉल (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)]] ([[इंटरफ़ेस (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)]]), श्रेणियां (घटक, [[ पहलू आधारित प्रोग्रामिंग ]], सॉफ़्टवेयर हॉट पैच#हॉट पैचिंग), [[ एकाधिक वंशानुक्रम ]], पब्लिक/प्रोटेक्टेड/प्राइवेट इनहेरिटेंस, [[घटना-संचालित प्रोग्रामिंग]], हाई -लेवल मल्टी-थ्रेडिंग प्रोग्रामिंग,<ref>{{Cite book | doi = 10.1007/978-3-540-77442-6| title = घोषणात्मक भाषाओं के व्यावहारिक पहलू| volume = 4902| series = Lecture Notes in Computer Science| year = 2008| isbn = 978-3-540-77441-9}}</ref> [[प्रतिबिंब (कंप्यूटर विज्ञान)]], और प्रलेखन की स्वचालित पीढ़ी। | ||
प्रोलॉग प्रोग्रामर्स के लिए, लॉगटॉक व्यापक पोर्टेबिलिटी प्रदान करता है, जिसमें विधेय नामस्थान (स्थिर और गतिशील वस्तुओं दोनों का समर्थन), सार्वजनिक/संरक्षित/निजी वस्तु विधेय, सहसंयोजन, इंटरफ़ेस और कार्यान्वयन के बीच अलगाव, सरल और सहज मेटा-विधेय शब्दार्थ, लैम्ब्डा कलन, निश्चित खंड शामिल हैं। व्याकरण, शब्द-विस्तार तंत्र, और सशर्त संकलन। यह वास्तविक मानक कोर मॉड्यूल कार्यक्षमता के आधार पर | प्रोलॉग प्रोग्रामर्स के लिए, लॉगटॉक व्यापक पोर्टेबिलिटी प्रदान करता है, जिसमें विधेय नामस्थान (स्थिर और गतिशील वस्तुओं दोनों का समर्थन), सार्वजनिक/संरक्षित/निजी वस्तु विधेय, सहसंयोजन, इंटरफ़ेस और कार्यान्वयन के बीच अलगाव, सरल और सहज मेटा-विधेय शब्दार्थ, लैम्ब्डा कलन, निश्चित खंड शामिल हैं। व्याकरण, शब्द-विस्तार तंत्र, और सशर्त संकलन। यह वास्तविक मानक कोर मॉड्यूल कार्यक्षमता के आधार पर मॉड्यूल सिस्टम भी प्रदान करता है (आंतरिक रूप से, मॉड्यूल को प्रोटोटाइप के रूप में संकलित किया जाता है)। | ||
== उदाहरण == | == उदाहरण == | ||
Line 58: | Line 58: | ||
true. | true. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
निजी विधेय तक पहुँचने का प्रयास | निजी विधेय तक पहुँचने का प्रयास त्रुटि देता है: | ||
<syntaxhighlight lang="logtalk"> | <syntaxhighlight lang="logtalk"> | ||
?- my_first_object::p2. | ?- my_first_object::p2. | ||
Line 72: | Line 72: | ||
== डेवलपर उपकरण == | == डेवलपर उपकरण == | ||
लॉगटॉक में ऑन-लाइन सहायता, | लॉगटॉक में ऑन-लाइन सहायता, दस्तावेज़ीकरण उपकरण (जो पीडीएफ और एचटीएमएल फाइलें उत्पन्न कर सकता है), इकाई आरेख जनरेटर उपकरण, अंतर्निर्मित डीबगर (अधिकांश प्रोलॉग कंपाइलर्स पर पाए जाने वाले पारंपरिक प्रक्रिया बॉक्स मॉडल के विस्तारित संस्करण के आधार पर) शामिल हैं। कोड कवरेज विश्लेषण के साथ इकाई परीक्षण ढांचा, और चयनित बैक-एंड प्रोलॉग प्रोफाइलर्स और ग्राफिकल ट्रैसर के साथ भी संगत है।<ref>{{cite web|author= |url=https://github.com/LogtalkDotOrg/logtalk3/wiki/Developer-Tools |title=Developer Tools – LogtalkDotOrg/logtalk3 Wiki – GitHub |publisher=Github.com |date=2013-02-12 |accessdate=2013-08-19}}</ref> | ||
Revision as of 19:51, 18 May 2023
Paradigm | Logic programming, object-oriented programming, prototype-based programming |
---|---|
द्वारा डिज़ाइन किया गया | Paulo Moura |
पहली प्रस्तुति | 1998 |
Stable release | 3.53.0
/ 20 January 2022 |
ओएस | Cross-platform |
लाइसेंस | Artistic License 2.0 (2.x) / Apache License 2.0 (3.01.x) |
वेबसाइट | logtalk |
Influenced by | |
Prolog, Smalltalk, Objective-C |
लॉगटॉक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग | ऑब्जेक्ट-ओरिएंटेड तर्क प्रोग्रामिंग लैंग्वेज है, जो बड़े पैमाने पर प्रोग्रामिंग के लिए उपयुक्त फीचर सेट के साथ प्रोलॉग लैंग्वेज का विस्तार और लाभ उठाती है।[1] यह सूचना छिपाने, चिंताओं को अलग करने और उन्नत कोड पुन: उपयोग के लिए सहायता प्रदान करता है।[1]लॉगटॉक कुछ ऑपरेटरों और निर्देशों के अतिरिक्त मानक प्रोलॉग सिंटैक्स का उपयोग करता है।
लॉगटॉक भाषा कार्यान्वयन ओपन सोर्स लाइसेंस के तहत वितरित किया जाता है और प्रोलॉग कार्यान्वयन (आधिकारिक और वास्तविक मानकों के अनुरूप) का उपयोग करके चलाया जा सकता है।[1]आगे और पीछे समाप्त होता है | बैक-एंड कंपाइलर के रूप में।
विशेषताएं
लॉगटॉक का उद्देश्य वस्तु-उन्मुख प्रोग्रामिंग और तर्क प्रोग्रामिंग के लाभों को साथ लाना है।[1]ऑब्जेक्ट-ओरिएंटेशन सॉफ्टवेयर की असतत, पुन: प्रयोज्य इकाइयों के विकास पर जोर देता है, जबकि तर्क प्रोग्रामिंग प्रत्येक वस्तु के ज्ञान को घोषणात्मक तरीके से प्रस्तुत करने पर जोर देती है।
वस्तु-उन्मुख प्रोग्रामिंग भाषा के रूप में, लॉगटॉक की प्रमुख विशेषताओं में वर्ग (कंप्यूटर विज्ञान) (वैकल्पिक मेटाक्लासेस के साथ) और प्रोटोटाइप-आधारित प्रोग्रामिंग, पैरामीट्रिक ऑब्जेक्ट्स, दोनों के लिए समर्थन शामिल है।[2] प्रोटोकॉल (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) (इंटरफ़ेस (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)), श्रेणियां (घटक, पहलू आधारित प्रोग्रामिंग , सॉफ़्टवेयर हॉट पैच#हॉट पैचिंग), एकाधिक वंशानुक्रम , पब्लिक/प्रोटेक्टेड/प्राइवेट इनहेरिटेंस, घटना-संचालित प्रोग्रामिंग, हाई -लेवल मल्टी-थ्रेडिंग प्रोग्रामिंग,[3] प्रतिबिंब (कंप्यूटर विज्ञान), और प्रलेखन की स्वचालित पीढ़ी।
प्रोलॉग प्रोग्रामर्स के लिए, लॉगटॉक व्यापक पोर्टेबिलिटी प्रदान करता है, जिसमें विधेय नामस्थान (स्थिर और गतिशील वस्तुओं दोनों का समर्थन), सार्वजनिक/संरक्षित/निजी वस्तु विधेय, सहसंयोजन, इंटरफ़ेस और कार्यान्वयन के बीच अलगाव, सरल और सहज मेटा-विधेय शब्दार्थ, लैम्ब्डा कलन, निश्चित खंड शामिल हैं। व्याकरण, शब्द-विस्तार तंत्र, और सशर्त संकलन। यह वास्तविक मानक कोर मॉड्यूल कार्यक्षमता के आधार पर मॉड्यूल सिस्टम भी प्रदान करता है (आंतरिक रूप से, मॉड्यूल को प्रोटोटाइप के रूप में संकलित किया जाता है)।
उदाहरण
लॉगटॉक का सिंटैक्स प्रोलॉग पर आधारित है:
?- write('Hello world'), nl.
Hello world
true.
किसी वस्तु को परिभाषित करना:
:- object(my_first_object).
:- initialization((write('Hello world'), nl)).
:- public(p1/0).
p1 :- write('This is a public predicate'), nl.
:- private(p2/0).
p2 :- write('This is a private predicate'), nl.
:- end_object.
ऑब्जेक्ट का उपयोग करना, यह मानते हुए कि my_first_object.lgt फ़ाइल में सहेजा गया है:
?- logtalk_load(my_first_object).
Hello world
true.
?- my_first_object::p1.
This is a public predicate
true.
निजी विधेय तक पहुँचने का प्रयास त्रुटि देता है:
?- my_first_object::p2.
ERROR: error(permission_error(access, private_predicate, p2), my_first_object::p2, user)
अनाम कार्य
प्रोलॉग बैक-एंड संगतता
समर्थित बैक-एंड प्रोलॉग कंपाइलर्स में शामिल हैं BProlog|B-Prolog, Ciao (प्रोग्रामिंग भाषा), CxProlog, ECLiPSe, GNU Prolog, [http: //www.jiprolog.com/ JIProlog], Quintus Prolog, Scryer Prolog, SICStus Prolog, SWI- प्रोलॉग, जेपी (प्रस्तावना), Trealla Prolog, XSB, और YAP (प्रोलॉग)।[4] लॉगटॉक ऑब्जेक्ट और श्रेणियों के भीतर बैक-एंड प्रोलॉग कंपाइलर लाइब्रेरी के उपयोग की अनुमति देता है।
डेवलपर उपकरण
लॉगटॉक में ऑन-लाइन सहायता, दस्तावेज़ीकरण उपकरण (जो पीडीएफ और एचटीएमएल फाइलें उत्पन्न कर सकता है), इकाई आरेख जनरेटर उपकरण, अंतर्निर्मित डीबगर (अधिकांश प्रोलॉग कंपाइलर्स पर पाए जाने वाले पारंपरिक प्रक्रिया बॉक्स मॉडल के विस्तारित संस्करण के आधार पर) शामिल हैं। कोड कवरेज विश्लेषण के साथ इकाई परीक्षण ढांचा, और चयनित बैक-एंड प्रोलॉग प्रोफाइलर्स और ग्राफिकल ट्रैसर के साथ भी संगत है।[5]
अनुप्रयोग
LogTalk का उपयोग ISO 10303-21 डेटा मॉडल को संसाधित करने के लिए किया गया है जिसका उपयोग उत्पाद निर्माण जानकारी के आदान-प्रदान के लिए किया जाता है।[6] इसका उपयोग तर्क प्रणाली को लागू करने के लिए भी किया गया है जो वरीयता तर्क और बाधाओं को हल करने की अनुमति देता है।[7]
यह भी देखें
- बुध (प्रोग्रामिंग भाषा)
- ओज़ (प्रोग्रामिंग भाषा)
- प्रोलॉग ++
- विजुअल प्रोलॉग
संदर्भ
- ↑ 1.0 1.1 1.2 1.3 Paulo Moura (2003). Logtalk: Design of an Object-Oriented Logic Programming Language. PhD thesis. Universidade da Beira Interior
- ↑ Moura, Paulo (2011). लॉगटॉक पैरामीट्रिक ऑब्जेक्ट्स के लिए प्रोग्रामिंग पैटर्न. Applications of Declarative Programming and Knowledge Management. Lecture Notes in Computer Science. Vol. 6547. doi:10.1007/978-3-642-20589-7_4. ISBN 978-3-642-20588-0.
- ↑ घोषणात्मक भाषाओं के व्यावहारिक पहलू. Lecture Notes in Computer Science. Vol. 4902. 2008. doi:10.1007/978-3-540-77442-6. ISBN 978-3-540-77441-9.
- ↑ "लॉगटॉक संगतता". Logtalk.org. 2016-10-10. Retrieved 2021-07-06.
- ↑ "Developer Tools – LogtalkDotOrg/logtalk3 Wiki – GitHub". Github.com. 2013-02-12. Retrieved 2013-08-19.
- ↑ तर्क प्रोग्रामिंग. Lecture Notes in Computer Science. Vol. 4079. 2006. doi:10.1007/11799573. ISBN 978-3-540-36635-5.
- ↑ Victor Noël; Antonis Kakas (2009). Gorgias-C: Extending Argumentation with Constraint Solving (PDF). Logic Programming and Nonmonotonic Reasoning. Lecture Notes in Computer Science. Vol. 5753. pp. 535–541.
बाहरी संबंध
- Official website
- 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)