6

यह मेरी कंप्यूटर-भाषा कक्षा के कुछ सालों से रहा है और इसलिए मैं बीएनएफ और ईबीएनएफ के बेहतर बिंदु भूल गया हूं और मेरे पास मेरे पास एक पाठ्यपुस्तक नहीं है। विशेष रूप से, मैं भूल गया हूं कि ईबीएनएफ को बीएनएफ में कैसे परिवर्तित किया जाए।ईबीएनएफ को बीएनएफ में परिवर्तित करना

मुझे जो कुछ याद है, मुझे पता है कि मुख्य बिंदुओं में से एक { term } को <term> | <many-terms> में परिवर्तित करना है। लेकिन मुझे अन्य नियम याद नहीं हैं। मैंने इसे ऑनलाइन देखने की कोशिश की है, लेकिन मुझे केवल होमवर्क सवालों के लिंक मिल सकते हैं, या घुंघराले ब्रेसिज़ के साथ शब्दों को परिवर्तित करने के बारे में एक छोटी सी टिप्पणी मिल सकती है। मुझे उन नियमों की एक विस्तृत सूची नहीं मिल रही है जो अनुवाद को परिभाषित करते हैं।

उत्तर

16

कृपया नीचे दिए गए लिंक को देखने के लिए, यह प्रत्येक उत्पादन परिवर्तित किया जा करने की जरूरत है कि के लिए निर्देश शामिल हैं:

http://lampwww.epfl.ch/teaching/archive/compilation-ssc/2000/part4/parsing/node3.html

इमारत पारसर्स (विशेष रूप से नीचे से ऊपर) एक BNF व्याकरण अक्सर बेहतर है, की तुलना में के लिए EBNF। एक ताजा गैर टर्मिनल X को

  • Convert हर पुनरावृत्ति { E } और एक ताजा गैर टर्मिनल X में जोड़ने

    X = ε | X E. 
    
  • Convert हर विकल्प [ E ]: लेकिन यह BNF के लिए एक EBNF व्याकरण कन्वर्ट करने के लिए आसान है और जोड़ने

    X = ε | E. 
    

    (हमकरने के लिए X = A [ E ] B. परिवर्तित कर सकते हैं)

  • Convert हर समूह (E) एक ताजा गैर टर्मिनल X करने और

    X = E. 
    
  • हम भी एक ही गैर टर्मिनल के साथ कई प्रस्तुतियों होने से विकल्पों के साथ दूर कर सकते हैं जोड़ें।

    X = E | E'. हो जाता है X = E. X = E'.

+0

बिल्कुल सही! यही वही है जो मुझे चाहिए। किसी ने मुझे वह लिंक कभी नहीं मिला! –

+1

मुझे अब उस लिंक पर 404 मिल रहा है ... कोई विचार अगर कहीं अपडेट किया गया संस्करण है? – Steve

+0

हां, मेरे सिर के ऊपर से नहीं। उम्मीद है कि पेज वापस आ जाएगा। –