parsing - फ्लेक्स/लेक्स और वाईएसीसी/बाइसन के बीच क्या अंतर है?




bison yacc (4)

फ्लेक्स और लेक्स और यैक और बाइसन के बीच क्या अंतर है। मैंने इंटरनेट पर जंगली खोज की और मुझे कोई ठोस जवाब नहीं मिला।

क्या मैं उबंटू पर शुद्ध लेक्स और वाईसीसी स्थापित कर सकता हूं, या मैं केवल फ्लेक्स और बाइसन इंस्टॉल कर सकता हूं। मैं उलझन में हूं।

  • क्या लेक्स या यैक अभी भी किसी के द्वारा बनाए रखा जा रहा है?
  • क्या वे सभी स्वतंत्र हैं?
  • यदि लेक्स मुफ्त नहीं है तो मैंने इसे अपने उबंटू वितरण पर क्यों इंस्टॉल किया है?

    lex --version
    lex 2.5.35
    

अधिकांश (सभी?) लिनक्स सिस्टम पर, "लेक्स" वास्तव में फ्लेक्स के लिए एक प्रतीकात्मक लिंक है। असल में, यह मुफ्त संस्करण के लिए केवल एक अलग नाम है।


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


लेक्स और फ्लेक्स के बीच कुछ अंतर हैं, लेकिन आपको फ्लेक्स के साथ समस्याओं में भाग लेने के लिए लेक्स का दुरुपयोग करना होगा। (मेरे पास एक प्रोग्राम है जो लेक्स का दुरुपयोग करता है और इसलिए फ्लेक्स के तहत काम नहीं करता है।) यह मुख्य रूप से इनपुट लुकहेड के क्षेत्र में है; लेक्स में, आप अपना इनपुट कोड प्रदान कर सकते हैं और चरित्र स्ट्रीम को संशोधित कर सकते हैं; फ्लेक्स आपको ऐसा करने नहीं देगा।

यैक और बाइसन बहुत करीबी संगत हैं, हालांकि बाइसन के पास कुछ अतिरिक्त चाल हैं जो यह कर सकती हैं।

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

यूनिक्स एसवीआरएक्स लाइसेंसों द्वारा लेक्स और वाईएसी को बनाए रखा जाता है - आईबीएम (एईक्स), एचपी (एचपी-यूएक्स) और सन (सोलारिस) जैसी कंपनियों ने लेक्स और वाईएसी के संस्करणों को उनके आदेश पर संशोधित किया है। एमकेएस एमकेएस लेक्स और एमकेएस वाईएसीसी भी प्रदान करता है; हालांकि, Yacc कम से कम कुछ गैर-मानक एक्सटेंशन हैं।

फ्लेक्स और बाइसन मुक्त हैं। (एटी एंड टी) लेक्स और वाईएसी नहीं हैं।


वाईएसीसी योजना 9 और ओपन सोलारिस दोनों के ओपन सोर्स लाइसेंस के तहत उपलब्ध है। इसके अलावा, बर्कले वाईएसीसी भी है, जो मूल वाईएसीसी के साथ संगत है, लेकिन स्रोत कोड साझा नहीं करता है। बर्कले वाईएसीसी किसी भी ओपन सोर्स बीएसडी ऑपरेटिंग सिस्टम पर पाया जा सकता है।





lex