2013-05-07 3 views
10

मौजूदा Marpa पार्सर का उपयोग पर्ल 5 के पार्सिंग को बेहतर बनाने के लिए किया जा सकता है (उदाहरण के लिए, मौजूदा पर्ल दुभाषिया के पार्सर के सभी या हिस्सों को प्रतिस्थापित करें)?क्या मार्पा का उपयोग पर्ल दुभाषिया के पार्सिंग को तेज करने के लिए किया जा सकता है?

मैं सैद्धांतिक स्तर पर पूछ रहा हूं, उदा। व्यावहारिक विचारों को अनदेखा करना जैसे कि "यदि यह कर सकता है, तो यह 10,000 व्यक्ति घंटे काम करेगा"।

यदि नहीं, तो मार्पा के उपयोग को रोकने वाले विशिष्ट मुद्दे क्या हैं? (फिर से, अधिमानतः सैद्धांतिक वाले)।

यह दिलचस्प क्यों है, जेफरी केगलर (मार्पा के लेखक) ने 2008 में पर्लमोंक्स पर कुछ हद तक प्रसिद्ध लेख "Perl Cannot Be Parsed: A Formal Proof" पोस्ट किया है, जो मार्पा पर उनके तत्कालीन वर्तमान कार्य से प्रभावित था।

+0

एक चेतावनी के रूप में, मैं पसंद करूंगा - यदि संभव हो - उत्तर जो छोटे से परे हो जाएं "[कोई पार्सर पर्ल कोड पार्स कर सकता है क्योंकि आप संकलन चरण के दौरान BEGIN कोड ब्लॉक निष्पादित कर सकते हैं] (http://stackoverflow.com/questions/1280594/कर सकते हैं-पर्ल होने वाली स्थिर-पार्स? RQ = 1) "। जैसे दिखाएं कि कैसे और क्यों मार्पा को लेक्सर के साथ नहीं जोड़ा जा सकता है जिस तरह से पर्ल के वर्तमान पार्सर मेरे आम आदमी समझ पर आधारित लगता है; या क्यों - यहां तक ​​कि अगर यह कर सकता है - मार्पा मौजूदा पार्सर से कम होगा। – DVK

+2

मैंने इस प्रश्न का लिंक जेफरी केगलर के मार्पा Google समूह को भेजा है, उम्मीद है कि वह अपने पुराने पर्लमोंक्स लेख के आधार पर जवाब देने में रूचि रखेगा "[पर्ल कैन नहीं किया जा सकता: एक औपचारिक सबूत] (http://www.perlmonks.org /? node_id = 663393) " – DVK

+0

आप कोशिश किए बिना कैसे कह सकते हैं? – ikegami

उत्तर

9

पूछने के लिए धन्यवाद। संबंधित प्रश्नों के बाद perlmonks पोस्ट और मेरे वर्तमान पार्सिंग कार्य दो अलग अलग पते। प्रश्न 1: क्या पर्ल पार्सिंग, पूर्ण पूर्णता में, ट्यूरिंग मशीन द्वारा निर्णायक है? प्रश्न 2: क्या मार्पा, एक व्यावहारिक मामले के रूप में, पर्ल 5 पार्स कर सकते हैं?

आप दो प्रश्नों की तुलना कर सकते हैं: "क्या हर सी कार्यक्रम का व्यवहार निर्णायक है?" और "सी में मशीन एक्स प्रोग्राम संकलित कर सकते हैं?" जवाब क्रमशः, "नहीं" और "हां सभी व्यावहारिक उद्देश्यों और एक्स के उचित विकल्प" हैं। तो मेरे perlmonks पोस्ट (here अद्यतन) सैद्धांतिक सवाल के बारे में है कि पर्ल कार्यक्रमों का सिंटैक्स, इसकी पूर्ण सामान्यता में, निर्णायक है। ध्यान दें कि उस संदर्भ में पर्ल पार्सिंग की निर्णायकता के पास मार्पा, रिकर्सिव वंश, बाइसन इत्यादि से कोई लेना-देना नहीं है - यह ट्यूरिंग मशीनों के बारे में है।

प्रश्न 2 "क्या मार्पा एक व्यावहारिक पर्ल 5 पार्सर चला सकता है?" वर्तमान पर्ल 5 पार्सर एलएएलआर है, जिसमें एक अलग लेजर और प्रक्रियात्मक सहायता है। मार्पा एलएएलआर की तुलना में अधिक शक्तिशाली है, एक अलग लेक्सर की अनुमति देता है, और एलएएलआर की तुलना में प्रक्रियात्मक कोड के लिए और अधिक सहायता प्रदान करता है। मैंने a recent blog post में स्पीड प्रश्न को संबोधित किया: "क्या अर्ली पार्सिंग पर्याप्त तेज़ है?" जो मैंने अभी कहा है वह बहुत ही टेलीग्राफिक है - लेकिन मुझे उम्मीद है कि यह प्रश्न 2 के मेरे "हां" जवाब को औचित्य साबित करने के लिए करेगा।

कोई गहरा वास्तुशिल्प समस्या मार्पा संचालित नहीं है पर्ल 5 पार्सर। इस बिंदु पर, यह वास्तव में आराम स्तर का सवाल है।

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

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