Orang sering mengatakan bahwa parser LR (k) lebih kuat daripada parser LL (k) . Pernyataan-pernyataan ini sebagian besar tidak jelas; khususnya, haruskah kita membandingkan kelas untuk tetap atau serikat atas semua ? Jadi bagaimana sebenarnya situasinya? Secara khusus, saya tertarik pada bagaimana LL (*) cocok.
Sejauh yang saya tahu, set tata bahasa masing-masing yang diterima oleh LL dan LR parser adalah ortogonal, jadi mari kita bicara tentang bahasa yang dihasilkan oleh masing-masing tata bahasa. Biarkan menunjukkan kelas bahasa yang dihasilkan oleh tata bahasa yang dapat diuraikan oleh pengurai , dan serupa untuk kelas lainnya.
Saya tertarik pada hubungan berikut:
Beberapa di antaranya mungkin mudah; tujuan saya adalah mengumpulkan perbandingan "lengkap". Referensi dihargai.
Jawaban:
Ada banyak penahanan yang diketahui. Biarkan menunjukkan kontainmen dan kontainmen yang tepat. Biarkan menunjukkan ketidakterbandingan.⊆ ⊂ ×
Biarkan , .LL=⋃kLL(k) LR=⋃kLR(k)
Tingkat tata bahasa
Untuk LL
Sebagian besar ini terbukti dalam Properties tata bahasa top-down deterministik oleh Rosenkrantz dan Stearns. adalah latihan yang agak sepele. Presentasi oleh Terence Parr ini menempatkan pada slide 13. Makalah Tata bahasa LL-regular oleh Jarzabek dan Krawczyk menunjukkan , dan buktinya secara sepele meluas keSLL(k+1)×LL(k) LL(∗) LL⊂LLR LL⊂LL(∗)
Untuk LR
Ini semua adalah latihan sederhana.
LL versus LR
Tingkat bahasa
Untuk LL
Sebagian besar ini terbukti dalam Properti tata bahasa top-down deterministik . Masalah kesetaraan untuk tata bahasa LL- dan LR-reguler oleh Nijholt membuat referensi ke makalah yang menunjukkan . Makalah tata bahasa LL-reguler oleh Jarzabek dan Krawczyk menunjukkan , dan bukti mereka sepele meluas keLL(k)⊂LL(∗) LL⊂LLR LL⊂LL(∗)
Untuk LR
Beberapa di antaranya dibuktikan oleh Knuth dalam makalahnya. Pada Terjemahan Bahasa dari Kiri ke Kanan di mana ia memperkenalkan LR (k), sisanya terbukti dalam Mengubah LR (k) Tata Bahasa menjadi LR (1), SLR (1), dan (1,1) Tata Bahasa Konteks Kanan Terbatas oleh Mickunas et al.
LL versus LR
sumber