प्रोलॉग पेशेवर रूप से उपयोगी है?


15

मैंने विश्वविद्यालय में कई साल पहले प्रोलॉग सीखा। अपने पेशेवर जीवन के दौरान, मुझे प्रोलॉग का उपयोग करने की आवश्यकता नहीं है। क्या मैं कुछ खास याद किया है?

जहां तक ​​मुझे याद है प्रोलॉग को प्रमुख प्रोग्रामिंग भाषाओं की तुलना में पूरी तरह से अलग मानसिकता की आवश्यकता होती है।

क्या प्रोलॉग वास्तव में कभी पेशेवर रूप से उपयोगी कुछ लागू करने के लिए उपयोग किया जाता है?


3
AI कोडिंग के लिए Prolog (और poplog) बहुत अच्छे हैं। यदि आप AI से संबंधित चीजों को व्यावसायिक रूप से / गंभीरता से नहीं कर रहे हैं, तो आप शायद इसका उपयोग न करें। जैसे कि एक गैर-इंजीनियर कभी भी MATLAB का गंभीरता से उपयोग नहीं कर सकता है।
ग्लासस

1
अच्छा प्रश्न। Prolog यूनी पॉट्सडैम में कम्प्यूटेशनल भाषा विज्ञान में सिखाई जाने वाली पहली प्रोग्रामिंग भाषा है, लेकिन उसके बाद हम वास्तव में इसका उपयोग नहीं करते हैं, भले ही हम इसमें बहुत अच्छे हों। बड़े अफ़सोस की बात है। जब भी मैं StackOverflow पर "मैं एक संचायक का उपयोग कैसे करता हूं" या "मुझे सभी संभावित उत्तर कैसे प्राप्त होते हैं" जैसे प्रश्न मिलते हैं, तो यह मुझे आश्चर्यचकित करता है कि वास्तविक पेशेवर उपयोगकर्ता कहां हैं - अधिकांश सामान होमवर्क जैसा लगता है। या शायद प्रोलोग प्रवीणता आपको एक ऐसे रोबोट में बदल देती है जिसके पास कभी सवाल नहीं होते हैं।
फेलिक्स डॉम्बेक

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

जवाबों:


12

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

यदि आपके पास एक समस्या है जो घोषणात्मक तर्क का उपयोग करके सबसे अच्छा हल किया जाएगा, तो आपको आदर्श रूप से पहचानना चाहिए और जानना चाहिए (यदि आपके पास विकल्प है) तो उस नौकरी के लिए सही उपकरण का उपयोग करें।

हालांकि, मैं मानता हूं कि प्रोलॉग को पारंपरिक अनिवार्य भाषाओं से बहुत अलग मानसिकता की जरूरत है, और कार्यात्मक भाषाओं से भी बहुत अलग मानसिकता है। एक निश्चित बिंदु से परे, इसे बहुत अधिक अनुभव (बस कुछ भी) के रूप में अनुभव करने की आवश्यकता होती है, और यहां तक ​​कि "पाठ्यपुस्तक" ज्ञान का एक बहुत कुछ है जो मेरे मस्तिष्क को मेरे कानों से बाहर निकाल देता है।

मेरी धारणा यह है ... हम दोनों शायद एक हद तक कुछ खास याद कर रहे हैं , लेकिन प्रोलॉग के लिए एक समान रूप से पूर्ण पाठ्यपुस्तक-स्तरीय ज्ञान सीखने के लिए समय समर्पित करना व्यावहारिक नहीं होगा, अकेले ही वास्तविक दुनिया के अनुभव को विकसित करने की कोशिश करें , जब तक आप एक संभावित लॉजिक प्रोग्रामिंग करियर पर विचार नहीं कर रहे हैं।

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

अधिक हाल की पुस्तकें जो विशेष रूप से प्रोलॉग का वर्णन करती हैं, भाषा सीखने के लिए बेहतर होगी, लेकिन फिर जोखिम यह है कि आपका मस्तिष्क मध्यवर्ती-से-उन्नत सामग्री में कहीं न कहीं आपके कानों से बाहर निकल जाएगा।


एअर इंडिया / प्रोलॉग नौसिखिया यहाँ। आपके द्वारा सुझाए गए कोई भी ऑनलाइन संसाधन?
यति ने १४'११

@yati - कोशिश amzi.com/AdvtInProlog/advtop.php - मैं एक बार अम्ज़ी साइट पर एक ट्यूटोरियल के माध्यम से भाग गया था जो मुझे याद था के रूप में ठीक लग रहा था, लेकिन यह बहुत पहले था। प्रोलॉग के लिए हाल ही में मैंने (पिछले 5 वर्षों में) देखा है कि एआई पुस्तक जिसका मैंने इस उत्तर में उल्लेख किया है। आपको टिप्पणियों को पोस्ट करने के बजाय यहां एक प्रश्न खोजना / पूछना चाहिए, विशेष रूप से टिप्पणियों को किसी ऐसे व्यक्ति द्वारा लिखित उत्तर में जोड़ा गया जो मूल रूप से एक दीर्घकालिक नौसिखिया है। प्रोलॉग का कुछ ऐसा है जिसे मैं शायद ही कभी और बहुत कम गहराई में देखता हूं - या फिर मैं एक दशक या उससे अधिक पहले नौसिखिया बनना बंद कर देता।
स्टीव ३४

10

यह मैं नहीं था, लेकिन यह मानते हुए कि "क्या किसी ने प्रोलॉग के साथ कुछ गंभीर लागू किया हो सकता है?" यह गिनती हो सकती है:

http://asmarterplanet.com/blog/2011/02/the-watson-research-team-answers-your-questions.html

वाटसन लिनक्स चलाने वाले आईबीएम पावर 750 सर्वर के 10 रैक द्वारा संचालित है, और 15 टेराबाइट रैम, 2,880 प्रोसेसर कोर का उपयोग करता है और 80 टेराफ्लॉप्स पर काम करने में सक्षम है। वाटसन को ज्यादातर जावा में लिखा गया था, लेकिन कोड के महत्वपूर्ण भाग भी सी ++ और प्रोलॉग लिखे गए हैं, सभी घटकों को डीआईएमए का उपयोग करके तैनात और एकीकृत किया गया है।


7

मुझे पता है कि एआई प्रोग्रामर इसका इस्तेमाल करते हैं ..... क्योंकि मैंने अपनी एआई क्लास में प्रोलॉग कोर्स किया था, लेकिन इसके अलावा मैंने इसके बारे में और कुछ नहीं देखा। यहाँ लता जवाब के साथ एक समान प्रश्न है! /programming/130097/real-world-prolog-usage


6

प्रोलॉग एक तेज प्रोटोटाइप के लिए बहुत अच्छा है। उदाहरण के लिए, http://www.cri.ensmp.fr/classement/doc/A-381.pdf में GCC के लिए SSA- परिवर्तन को पहले Prolog में, और फिर C में लागू किया जाता है।

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


2

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


2

वाट्सन के 1 भाग ((FAQ FAQ) के अनुसार , आईबीएम मशीन जिसमें जॉग्फी खेली जाती थी, प्रोलॉग में लिखी गई थी। (प्रश्न # 6 देखें)


1

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

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

तो - संवेदनशील बिट्स द्वारा अपनी पुनरावर्ती संरचनाओं को पकड़ो और कुछ सुंदर, स्वच्छ, सुरुचिपूर्ण, बनाए रखने योग्य प्रोलॉग लिखो! :)

पुनश्च जब मैं प्रोलॉग का उपयोग नहीं कर रहा हूं, मैं C # पर वापस आता हूं

  • हालांकि, मैं उस दिन के लिए लंबे समय से हूं, जब कम से कम कुछ पहलुओं, वाणिज्यिक कार्यक्रमों को एक मानक अभ्यास के रूप में सही साबित किया जाता है।

1

अपनी पसंदीदा भाषा में सुडोकू सॉल्वर लिखने की कोशिश करें, फिर जांच लें कि यह प्रोलॉग में कैसे किया गया है। सामान्य तौर पर किसी भी सीएलपी समस्या में प्रोलॉग जैसी घोषित भाषा के साथ अच्छा लगता है।

इसका उपयोग हार्डवेयर और सॉफ़्टवेयर के औपचारिक सत्यापन में भी किया जाता है (अकादमिक रूप से और शायद पेशेवर रूप से लेकिन मेरा कंपनियों के लिए कोई संदर्भ नहीं है)।

अंत में, प्रोलाग से एर्गैंग गहराई से प्रभावित होता है, जिसमें मन में गलती और सहिष्णुता होती है।


0

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.