2010-06-01 11 views
17

मैं आपको पूछना चाहता हूं कि स्क्रैच/रिवर्स इंजीनियर से लागू करने के लिए कौन सी औपचारिक प्रणाली अधिक दिलचस्प हो सकती है।अधिक दिलचस्प या शक्तिशाली क्या है: करी, बुध या लैम्ब्डा-प्रोलॉग?

मैंने लॉजिकल/घोषणात्मक प्रोग्रामिंग सिस्टम की कुछ मौजूदा और ओपन-सोर्स परियोजनाओं को देखा है। मैंने अपने खाली समय में कुछ कम करने का निर्णय लिया है, या कम से कम कार्यान्वयन के सामान्य विचार को पकड़ने का फैसला किया है।

यह बहुत अच्छा होगा अगर इनमें से कुछ सिस्टम लॉजिक में आधुनिक शैक्षिक जांच और कम्प्यूटेशनल मॉडल के साथ इसके संबंध में अभिव्यक्तिपूर्ण शक्ति और समग्रता की अधिकतरता प्रदान करेंगे।

कम से कम अवधारणात्मक स्तर पर अध्ययन करने की आप क्या सलाह देंगे? उदाहरण के लिए, लैम्ब्डा-प्रोलॉग दिलचस्प है क्योंकि यह उच्च आदेश संबंधों की अनुमति देता है, लेकिन AFAIK अंतर्ज्ञानवादी तर्क पर आधारित है और इसलिए बहिष्कृत-मध्य सिद्धांत की कमी है; यह आमतौर पर मेरे लिए एक नुकसान है।

मैं आधुनिक लॉजिकल प्रोग्रामिंग सिस्टम के बारे में किसी भी सुझाव का भी स्वागत करता हूं जो कम लोकप्रिय लेकिन अधिक अभिव्यक्तिपूर्ण/शक्तिशाली है।

+0

यह एक समान प्रश्न है: http://stackoverflow.com/questions/17675133/most-useful-instructive- कार्यात्मक-logic-language-to-learn?rq=1 –

उत्तर

16

प्रोलॉग पहली भाषा थी जिसने प्रोग्रामिंग में अपना दृष्टिकोण बदल दिया। लेकिन बाद में मैंने पाया कि यह इतना उच्च स्तर नहीं है क्योंकि मैं इसे देखना चाहता हूं।

करी - मैंने केवल मुन्स्टर सीसी की कोशिश की है, और इसे कुछ हद तक असुविधाजनक पाया है। असल में, इस बिंदु पर, मैंने हास्केल को अनदेखा करना बंद करने का फैसला किया।

बुध में कई चीजें हैं जिन्हें मैं प्रोलॉग में देखना चाहता था। नियमों के तरीकों को अलग करने की संभावना के बारे में मुझे वास्तव में अच्छी उम्मीद है। बुध में लिखे गए कार्यक्रमों को संकलक को बहुत अनुकूलन करने के लिए प्रेरित करना चाहिए (मुझे लगता है)।

+4

प्रोलॉग आकर्षक है। लेकिन इससे भी ज्यादा, यह वास्तव में "सरल" कैसे है। – alex

2

एक प्रोग्रामिंग भाषा पाठ्यक्रम में अंतिम परियोजना के लिए मैंने लिया, हमें निरंतरता और मैक्रोज़ का उपयोग करके योजना में एक प्रोलॉग मूल्यांकनकर्ता एम्बेड करना पड़ा। अंत परिणाम यह था कि आप योजना और प्रोलॉग कोड को स्वतंत्र रूप से मिश्रित कर सकते हैं, और यहां तक ​​कि प्रोजेक्ट इंजन में योजना में लिखित मनमाने ढंग से भविष्यवाणियों को भी पारित कर सकते हैं।

यह एक बहुत ही निर्देशक व्यायाम था। कोड की पहली 12 पंक्तियां (and और or) सचमुच लिखने और सही होने के लिए लगभग 6 घंटे लग गए। यह खोज तर्क बहुत अधिक था, निरंतरता का उपयोग करके बहुत संक्षेप में लिखा गया। बाकी थोड़ा और आसानी से पीछा किया। फिर एक बार मैंने एकीकरण एल्गोरिदम जोड़ा, यह सब अभी काम किया।

4

यदि मैं एक तर्क आधारित प्रणाली का विस्तार करने की कोशिश कर रहा था, तो मैं Prolog Cafe चुनता हूं क्योंकि यह छोटा, खुला सोर्स, मानकों का अनुपालन करता है, और आसानी से जावा आधारित सिस्टम में एकीकृत किया जा सकता है।

9

Twelf

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

+1

2013 से Twelf के लिए कोई अपडेट नहीं किया गया है। क्या आप जानते हैं कि यह अभी भी एक सक्रिय परियोजना है? –

संबंधित मुद्दे