भाषा सिद्धांत एलएल और एलआर व्याकरण की तुलना


66

लोग अक्सर कहते हैं कि एलआर (के) पार्सर्स एलएल (के) पार्सर की तुलना में अधिक शक्तिशाली हैं । ये कथन अधिकतर समय अस्पष्ट होते हैं; विशेष रूप से, क्या हमें सभी पर निश्चित या संघ के लिए वर्गों की तुलना करनी चाहिए ? तो वास्तव में स्थिति कैसी है? विशेष रूप से, मुझे इस बात में दिलचस्पी है कि एलएल (*) में कैसे फिट बैठता है।कश्मीरकक

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

मुझे निम्नलिखित संबंधों में दिलचस्पी है:

  • एलएल(क)⊆?एलआर(क)
  • ⋃मैं=1∞एलएल(क)⊆?⋃मैं=1∞एलआर(क)
  • ⋃मैं=1∞एलएल(क)=?एलएल(*)
  • एलएल(*)∘?⋃मैं=1∞एलआर(क)

इनमें से कुछ शायद आसान हैं; मेरा लक्ष्य एक "पूर्ण" तुलना एकत्र करना है। संदर्भ की सराहना की है।


2
शायद यह आपकी मदद कर सकता है! व्याकरण पदानुक्रम छवि
— एंड्रिया टुसी

1
@AndreaTucci: हाँ, लेकिन यह केवल व्याकरणों को शामिल करता है, उत्पन्न भाषाओं को नहीं।
— राफेल

जवाबों:


60

वहाँ कई नियंत्रण ज्ञात हैं। आज्ञा देना निरूपित नियंत्रण और contain उचित नियंत्रण। Let × असंगतता को निरूपित करते हैं।⊆⊂×

चलो , एल आर = ⋃ कश्मीर एल आर ( कश्मीर ) ।एलएल=⋃कएलएल(क)एलआर=⋃कएलआर(क)

व्याकरण का स्तर

एलएल के लिए

  • एलएल(0)⊂एलएल(1)⊂एलएल(2)⊂एलएल(2)⊂⋯⊂एलएल(क)⊂⋯⊂एलएल⊂एलएल(*)
  • एसएलएल(1)=एलएल(1),एसएलएल(क)⊂एलएल(क),एसएलएल(क+1)×एलएल(क)

इनमें से अधिकांश रोसेंक्रांट और स्टर्न द्वारा नियतात्मक शीर्ष डाउन व्याकरण के गुणों में सिद्ध होते हैं । एक बल्कि तुच्छ व्यायाम है। इस प्रस्तुति टेरेंस पार से स्थानों एल एल ( * ) स्लाइड 13 Jarzabek और क्रावक्ज़क शो द्वारा कागज डालूँगा-नियमित व्याकरण एल एल ⊂ एल एल आर , और उनके प्रमाण तुच्छता तक फैली एल एल ⊂ एल एल ( * )एसएलएल(क+1)×एलएल(क)एलएल(*)एलएल⊂एलएलआरएलएल⊂एलएल(*)

एलआर के लिए

  • एलआर(0)⊂एसएलआर(1)⊂एलएएलआर(1)⊂एलआर(1)
  • एसएलआर(क)⊂एलएएलआर(क)⊂एलआर(क)
  • एसएलआर(1)⊂एसएलआर(2)⊂⋯⊂एसएलआर(क)
  • एलएएलआर(1)⊂एलएएलआर(2)⊂⋯⊂एलएएलआर(क)
  • एलआर(0)⊂एलआर(1)⊂एलआर(2)⊂⋯⊂एलआर(क)⊂⋯⊂एलआर

ये सभी सरल अभ्यास हैं।

एलएल बनाम एलआर

  • ( गुणकों के गुणन शीर्ष नीचे व्याकरणऔर किसी भी बाएं पुनरावर्ती स्तनधारी)एलएल(क)⊂एलआर(क)
  • (सरल व्यायाम)एलएल(क)×एसएलआर(क),एलएएलआर(क),एलआर(क-1)
  • (किसी भी बाएं पुनरावर्ती व्याकरण)एलएल⊂एलआर
  • (बाईं ओर की पुनरावृत्ति बनाम मनमानी लुकहेड)एलएल(*)×एलआर

भाषा का स्तर

एलएल के लिए

  • एलएल(0)⊂एलएल(1)⊂एलएल(2)⊂⋯⊂एलएल(क)⊂⋯⊂एलएल⊂एलएल(*)
  • एसएलएल(क)=एलएल(क)

एलएल(क)⊂एलएल(*)एलएल⊂एलएलआरएलएल⊂एलएल(*)

एलआर के लिए

  • एलआर(0)⊂एसएलआर(1)=एलएएलआर(1)=एलआर(1)=एसएलआर(क)=एलएएलआर(क)=एलआर(क)=एलआर

इनमें से कुछ को नथ ने अपने पेपर में लेफ्ट से राइट टू लैंग्वेज के ट्रांसलेशन में साबित किया था जिसमें उन्होंने LR (k) को पेश किया था, बाकी LR (k) ग्रामर को LR (1), SLR (1) में बदलने में सिद्ध होते हैं , और (1,1) मिकुनस एट अल द्वारा राइट- कॉनटेक्स्ट ग्रामर को बाउंड किया गया।

एलएल बनाम एलआर

  • एलएल⊂एलआर(1){एमैंखजे|मैं≥जे}
  • एलएल(*)×एलआर{एमैंखजे|मैं≥जे}
  • एलआर(1)=डीसीएफएल

उत्कृष्ट उत्तर हालांकि, मैंने पहले ही उत्थान कर लिया था। मैंने सोचा होगा कि फ्रैंक डेमर ने अपने मूल एलएएलआर पेपर में एलएएलआर = एलआर साबित किया है? (1969?)
— user207421

एलएएलआर(क)⊆एलआर(क)एलएएलआरएलआर

1
@AlextenBrink मैंने पेपर पढ़ा, और फ्रैंक डी रेमर द्वारा पढ़ाया गया था, लेकिन यह 30+ साल पहले ;-) सभी विवरण के लिए धन्यवाद।
— user207421

प्रत्येक असमानता के लिए उदाहरण व्याकरण इकट्ठा करना अच्छा हो सकता है।
— o11c

1
@ o11c मुझे लगता है कि एक ही जवाब को पछाड़ देगा। मेरी धारणा है कि एलेक्स ने अच्छे संदर्भ दिए जहां आवश्यक हो; वह कुछ के लिए "आसान व्यायाम" बताता है। मुझे लगता है कि अगर कोई पाठक एक व्याकरण के साथ नहीं आ सकता है, तो वे उस विशिष्ट मामले के लिए एक नया प्रश्न पूछ सकते हैं।
— राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.