Perbezaan Antara Tatabahasa Tidak jelas dan Tidak jelas

Isi kandungan:

Anonim

The perbezaan utama antara tatabahasa yang tidak jelas dan tidak jelas adalah bahawa tatabahasa samar-samar adalah tatabahasa bebas konteks di mana terdapat rentetan yang dapat memiliki lebih dari satu terbitan paling kiri sementara tatabahasa yang tidak jelas adalah tatabahasa bebas konteks yang mana setiap rentetan yang sah mempunyai derivasi paling kiri yang unik.

Tatabahasa merujuk kepada peraturan sintaksis dalam bahasa semula jadi. Pada tahun 1956, saintis komputer memperkenalkan model tatabahasa matematik untuk menulis bahasa komputer. Sekiranya mungkin untuk memperoleh semua rentetan bahasa menggunakan tatabahasa tertentu, maka dikatakan bahawa bahasa itu dihasilkan dari tatabahasa itu. Tatabahasa bebas konteks adalah salah satu jenis tatabahasa. Tatabahasa ini menghasilkan bahasa bebas konteks. Tatabahasa konteks bebas boleh samar-samar atau tidak jelas. Untuk rentetan tertentu, jika terdapat dua atau lebih turunan, tatabahasa itu dikatakan tidak jelas. Untuk rentetan tertentu, jika terdapat satu-satunya derivasi paling kiri yang unik, tatabahasa itu dikatakan sebagai tatabahasa yang tidak jelas.

Tatabahasa yang tidak jelas, Tatabahasa yang tidak jelas

Apa itu Tatabahasa Tidak jelas

Tatabahasa dikatakan samar-samar jika terdapat dua atau lebih turunan untuk rentetan.

Gambar 1: Tatabahasa yang tidak jelas

Andaikan bahawa terdapat tatabahasa yang ditakrifkan seperti berikut.

G = ({S}, {a + b, +, *}, P, S}. Peraturan pengeluaran adalah seperti berikut. S -> S + S | S * S | a | b. Anggap bahawa ia diperlukan untuk hasilkan String a + a * b.

Pertimbangkan, S -> S + S

Menggantikan 'a' untuk kiri paling S akan memberikan yang berikut.

S-> a + S

Menggantikan S * S untuk S adalah seperti berikut.

S-> a + S * S

Menggantikan 'a' untuk kiri paling banyak akan memberikan output di bawah.

S -> a + a * S

Mengganti 'b' untuk S akan memberikan output berikut.

S -> a + a * b

Ini adalah rentetan yang diperlukan untuk dihasilkan.

Apabila menggunakan peraturan pengeluaran yang lain, ia akan memberi

S -> S * S

Sapukan S + S ke kiri kebanyakan S akan memberikan yang berikut.

S -> S + S * S

Ganti 'a' untuk kiri paling banyak S,

S -> a + S * S

Menggantikan 'a' untuk kiri paling S,

S -> a + a * S

Mengganti 'b' untuk S akan memberikan output berikut.

S -> a + a * b

Sekali lagi, ia menghasilkan rentetan yang diperlukan. Oleh itu, terdapat lebih daripada satu derivasi untuk menghasilkan rentetan. Oleh itu, ia adalah tatabahasa yang tidak jelas.

Apa itu Tatabahasa Tidak Bercakap

Dalam tatabahasa yang tidak jelas, rentetan tertentu mempunyai terbitan paling kiri yang unik. Rujuk peraturan pengeluaran berikut.

S -> L | a, L -> LS | S

Pertimbangkan peraturan S -> L. Pengganti LS dan bukannya L.

S -> LS

Pengganti S, untuk L. pertama.

S -> S S

Mengganti 'a' untuk S paling kiri akan memberikan output di bawah.

S -> a S

Menggantikan 'a' untuk S akan memberikan yang berikut.

S -> a

Oleh itu, rentetan mempunyai derivasi paling kiri yang unik. Jadi, itu adalah tatabahasa yang tidak jelas.

Perbezaan Antara Tatabahasa Tidak jelas dan Tidak jelas

Definisi

Tatabahasa yang samar-samar adalah tatabahasa bebas konteks di mana terdapat rentetan yang dapat memiliki lebih dari satu turunan atau parse paling kiri. Tatabahasa tidak jelas adalah tatabahasa bebas konteks yang mana setiap rentetan yang sah mempunyai turunan atau parse paling kiri yang unik.

Bilangan Turunan Paling Kiri

Dalam tatabahasa yang samar-samar, rentetan dapat memiliki dua atau lebih turunan paling kiri tetapi, dalam tatabahasa yang tidak jelas, rentetan mempunyai derivasi paling kiri yang unik.

Kesimpulannya

Tatabahasa bebas konteks boleh samar-samar atau tidak jelas. Perbezaan antara tatabahasa yang tidak jelas dan tidak jelas adalah bahawa tatabahasa yang tidak jelas adalah tatabahasa bebas konteks yang mana terdapat rentetan yang dapat memiliki lebih dari satu derivasi paling kiri sementara tatabahasa yang tidak jelas adalah tatabahasa bebas konteks yang mana setiap rentetan yang valid mempunyai derivasi paling kiri yang unik.

Rujukan:

1. "Tatabahasa yang tidak jelas." Wikipedia, Yayasan Wikimedia, 17 Julai 2018, Terdapat di sini.2. "Reka Bentuk Penyusun | Tatabahasa yang tidak jelas. " GeeksforGeeks, 10 Februari 2018, Terdapat di sini.3. "Ambiguous Grammar", Neso Academy, 29 Mac 2017, Terdapat di sini.

Gambar Kesopanan:

1. "Leftmostderivations jaredwf" Oleh Jaredwf di Wikipedia Bahasa Inggeris - Dipindahkan dari en.wikipedia ke Commons oleh EdwardHades (Domain Awam) melalui Wikimedia Commons

Perbezaan Antara Tatabahasa Tidak jelas dan Tidak jelas