2010-03-13 5 views
22

मैंने पढ़ा है कि हास्केल पार्सर संयोजक (पारसी में) संदर्भ संवेदनशील व्याकरण का विश्लेषण कर सकते हैं। क्या यह स्कैला पार्सर संयोजकों के लिए भी सच है? यदि हां, तो क्या यह "इन" (उर्फ ">>") फ़ंक्शन के लिए है?स्कैला पार्सर संयोजक हास्केल के पारसी से तुलना कैसे करते हैं?

पास्कर संयोजकों के स्केल के कार्यान्वयन की कुछ ताकत/कमजोरियों, होस्केल बनाम क्या हैं? क्या वे व्याकरण की एक ही कक्षा को स्वीकार करते हैं? क्या त्रुटि संदेश उत्पन्न करना या अन्य विविध उपयोगी चीजों को एक या दूसरे के साथ करना आसान है?

इस चित्र में पैक्रेट पार्सिंग (स्कैला 2.8 में पेश किया गया) कैसे फिट है?

क्या कोई वेबपृष्ठ या कोई अन्य संसाधन है जो दिखाता है कि एक भाषा के कार्यान्वयन मानचित्र से दूसरे ऑपरेटरों/कार्यों/डीएसएल-चीनी कितने अलग हैं?

उत्तर

14

आपके कई प्रश्न हैं!

पारसेक

की स्काला कार्यान्वयन कोई भी यहाँ तुलना बना दिया है करने के लिए पारसेक (जो कई हास्केल पार्सर Combinator पुस्तकालयों में से एक है) की तुलना करना, के रूप में स्काला कोड काफी नया है, लेकिन जाँच प्रलेखन:

ध्यान दें कि यदि आप इस दृष्टिकोण में रूचि रखते हैं, तो हास्केल में कई अन्य पार्सर संयोजक पुस्तकालय हैं, उदा।

क्या हैं कुछ शक्तियों/पार्सर combinators की स्काला के कार्यान्वयन की कमजोरियों, बनाम हास्केल के?

हास्केल कोड एक दशक से अधिक पुराना है, अच्छी तरह से समझा जाता है, और कई उदाहरण हैं, बहुत सारे दस्तावेज और उपयोगकर्ता मामले हैं। स्कैला की सामग्री अपेक्षाकृत नई है।

packrat पार्स करने

packrat पार्स पूरी तरह से अलग है। मूल packrat paper हास्केल में विकसित किया गया था, लेकिन तब से यह अधिक व्यापक हो गया है।

क्या कोई वेबपृष्ठ या कोई अन्य संसाधन है जो दिखाता है कि एक भाषा के कार्यान्वयन मानचित्र से दूसरे ऑपरेटरों/कार्यों/डीएसएल-चीनी कितने अलग हैं?

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

7

वहाँ भी निम्न तकनीकी रिपोर्ट है:

Parser combinators in Scala

पार्सर combinators ऐसे हास्केल के रूप में कार्यात्मक प्रोग्रामिंग भाषाओं में से जानी जाती हैं। इस पेपर में, हम वर्णन करते हैं कि उन्हें स्काला, एक कार्यात्मक ऑब्जेक्ट उन्मुख भाषा में लाइब्रेरी के रूप में कैसे कार्यान्वित किया जाता है। स्कैला के लचीले सिंटैक्स के लिए धन्यवाद, हम समर्पित पार्सर जेनरेटर द्वारा समर्थित ईबीएनएफ नोटेशन का बारीकी से अनुमान लगाने में सक्षम हैं। अनियमित के लिए, हम पहले स्क्रैच से न्यूनतम लाइब्रेरी विकसित करके पार्सर संयोजकों की अवधारणा को समझाते हैं। इसके बाद हम सिंटैक्स के हिस्से के रूप में परिवर्तनीय बाध्यकारी को इंगित करने के लिए इसके समर्थन सहित मौजूदा स्कैला लाइब्रेरी का विस्तृत विवरण बदलते हैं। हम अपनी लाइब्रेरी की उपयोगिता को दर्शाने के लिए कई यथार्थवादी उदाहरण प्रदान करते हैं।

report.pdf (324K)

+0

@Adriaan मूर्स: वहाँ एक प्रकाशन है कि स्काला 2.8 Combinator पार्सर पुस्तकालय परिवर्धन के पते है? –

+0

मुझे ऐसा नहीं लगता है, लेकिन मैं तिआर्क से पूछूंगा - मैंने 2.7 के बाद से पार्सर्स पर काम नहीं किया है। –

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