parsing पार्सिंग, मैं इसके बारे में कहां सीख सकता हूं?




lex (10)

एक अन्य पाठ्यपुस्तक पर विचार करने के लिए प्रोग्रामिंग लैंग्वेज प्रोगैमैटिक्स मैं इसे ड्रैगन बुक पर पसंद करता हूं, लेकिन वाईएमएमवी

यदि आप पर्ल का उपयोग कर रहे हैं, तो विचार करने के लिए एक और उपकरण पार्स :: रिक डेनिसेंट है

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

मुझे एक भाषा में अनुवाद करने की नौकरी मिल गई है। स्रोत बहुत सरल है (जटिल) regex के साथ लाइन दृष्टिकोण से एक सरल रेखा के लिए Lexical विश्लेषण और पार्सर के बारे में अधिक जानने के लिए मैं कहाँ जा सकता हूं?


यदि आप जावा आधारित टूल पसंद करते हैं, तो जावा कम्पाइलर कम्पाइलर, जावा सीसी, एक अच्छा पार्सर / स्कैनर है। यह कॉन्फ़िग फ़ाइल चालित है, और जावा कोड उत्पन्न करेगा जिसे आप अपने प्रोग्राम में शामिल कर सकते हैं। मैंने इसे कुछ सालों का इस्तेमाल नहीं किया है, इसलिए मुझे यकीन नहीं है कि वर्तमान संस्करण कैसे है। आप यहां अधिक जानकारी प्राप्त कर सकते हैं: https://javacc.dev.java.net/



फ्लेक्स और बायसन नए लेक्स और यैज हैं हालांकि बीएनएफ के लिए वाक्यविन्यास अक्सर थोड़ी कष्ट होने के लिए बहकाया जाता है कुछ लोग इस कारण एएनटीएलआर और रागल को चले गए हैं।

यदि आप अधिक अनुवाद नहीं कर रहे हैं, तो आप पर्ल या रूबी के साथ बहु-लाइन रीगेक्सेस का उपयोग करके एक-एक को खींच सकते हैं। एक मौजूदा भाषा के लिए एक संगत BNF व्याकरण लिखना एक कार्य नहीं है जिसे हल्के ढंग से लिया जाना चाहिए।

दूसरी तरफ, यदि कोई ओपन सोर्स के रूप में उपलब्ध हो तो किसी भी दी गई भाषा की। एल और .i फाइलों का लाभ उठाना पूरी तरह से संभव है। उसके बाद, आप एक मौजूदा पर्स ट्री से नया कोड बना सकते हैं।


(काफी) कुछ कंपाइलर कक्षाएं लेने के बाद, मैंने द ड्रैगन बुक और सी एंड टी दोनों का उपयोग किया है मुझे लगता है कि सी एंड टी कंपाइलर निर्माण को पचाने योग्य बनाने का एक बहुत अच्छा काम करता है। ड्रैगन बुक से कुछ भी नहीं लेना, लेकिन मुझे लगता है कि सी एंड टी एक बहुत अधिक व्यावहारिक पुस्तक है।

इसके अलावा, अगर आप जावा में लिखना चाहते हैं, तो मैं अपने लेक्सिंग और पार्सिंग की जरूरतों के लिए जेएफएक्स और बीएवाईसी / जे का उपयोग करने की सलाह देता हूं।


यदि आप विषय के बारे में "भावनात्मक" प्राप्त करना चाहते हैं, तो " ड्रैगन बुक " की एक प्रति चुनें। यह आम तौर पर कंपाइलर डिजाइन पाठ्यक्रम में पाठ होता है। यह निश्चित रूप से आपकी जरूरत को पूरा करेगा "वाक्पटु विश्लेषण और पार्सर" के साथ-साथ अन्य मज़ेदार सामानों का एक गुच्छा!

आईएमएच (आईंएम) ओ, अपने आप को एक हाथ और / या पैर बचाने के लिए और एक पुराने संस्करण खरीद - यह आपकी जानकारी इच्छाओं को भर देगा


एएनएलटीआर की कोशिश करो:

एएनटीएलआर, भाषा मान्यता के लिए एक और उपकरण, एक भाषा उपकरण है जो विविध लक्ष्यीकरण भाषाओं में कार्य करने वाले व्याकरण संबंधी विवरणों से पहचानकर्ता, दुभाषियों, संकलक और अनुवादकों के निर्माण के लिए ढांचा प्रदान करता है।

इसके लिए एक पुस्तक भी है


मुझे यह साइट उपयोगी मिली:

लेक्स और वाईएसीसी प्राइमर / होवो

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


मैं हाल ही में PLY के साथ काम कर रहा हूं जो पायथन में लेक्स और yacc का कार्यान्वयन है। इसके साथ शुरू करना काफी आसान है और दस्तावेज़ीकरण में कुछ सरल उदाहरण हैं।

पार्सिंग जल्दी से एक बहुत ही तकनीकी विषय बन सकता है और आपको लगता है कि यदि आपको पीएलआई जैसे पार्सर बिल्डर का उपयोग कर रहे हैं तो शायद आपको पार्सिंग एल्गोरिदम के सभी विवरण जानने की जरूरत नहीं होगी।


पार्सिंग तकनीकों - एक व्यावहारिक गाइड डिक ग्रुइन और सेरियल जे एच जैकब्स

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





lex