Ini pertanyaan dari Buku Naga. Ini adalah tata bahasanya:
Pertanyaannya adalah bagaimana menunjukkan bahwa itu LL (1) tetapi tidak SLR (1).
Untuk membuktikan bahwa itu adalah LL (1), saya mencoba membangun tabel parsingnya, tetapi saya mendapatkan beberapa produksi dalam sel, yang merupakan kontradiksi.
Tolong beritahu bagaimana LL ini (1), dan bagaimana membuktikannya?
formal-grammars
compilers
parsers
Vinayak Garg
sumber
sumber
Jawaban:
Pertama, mari beri nomor produksi Anda.
Mari kita hitung yang pertama dan ikuti set pertama. Untuk contoh kecil seperti ini, menggunakan intuisi tentang set ini sudah cukup.
sumber
Jika Anda tidak diminta, Anda tidak harus membuat tabel LL (1) untuk membuktikan bahwa itu adalah tata bahasa LL (1). Anda baru saja menghitung set FIRST / FOLLOW seperti yang dilakukan Alex:
Dan kemudian, menurut definisi tata bahasa LL (1) harus:
Jadi, untuk tata bahasa yang diberikan:
Adapun analisis SLR (1) saya pikir itu sempurna!
sumber
Cari kondisi yang cukup yang membuat tata bahasa LL (1) (petunjuk: lihat set FIRST).
Cari kondisi yang diperlukan yang harus dipenuhi oleh semua tata bahasa SLR (1) (petunjuk: lihat set FOLLOW).
sumber