Bagaimana menunjukkan tata bahasa yang ambigu?

Daftar Isi:

Bagaimana menunjukkan tata bahasa yang ambigu?
Bagaimana menunjukkan tata bahasa yang ambigu?
Anonim

"Jika sebuah tata bahasa menghasilkan setidaknya 2 pohon parse atau turunan yang berbeda, maka tata bahasanya ambigu." Aturan lain: semua CFG (tanpa simbol yang tidak berguna) dengan rekursif kiri dan rekursif kanan untuk non-terminal yang sama juga ambigu.

Bagaimana Anda tahu jika suatu tata bahasa ambigu?

Sebuah tata bahasa dikatakan ambigu jika terdapat lebih dari satu turunan paling kiri atau lebih dari satu turunan paling kanan atau lebih dari satu pohon parse untuk string input yang diberikan. Jika tata bahasanya tidak ambigu, maka itu disebut tidak ambigu. Jika tata bahasa memiliki ambiguitas, maka itu tidak baik untuk konstruksi kompiler.

Apa contoh tata bahasa yang ambigu?

Dalam ilmu komputer, tata bahasa ambigu adalah tata bahasa bebas konteks di mana terdapat string yang dapat memiliki lebih dari satu turunan paling kiri atau pohon parse, sedangkan tata bahasa yang tidak ambigu adalah tata bahasa bebas konteks di mana setiap string yang valid memiliki turunan paling kiri yang unik atau pohon parse.

Bagaimana Anda membuktikan bahwa tata bahasa bebas konteks itu ambigu?

3 Jawaban

  1. Semua CFG tanpa simbol yang tidak berguna dan dengan rekursi kiri dan kanan untuk simbol yang sama, adalah ambigu. Secara umum: …
  2. Untuk menyelidiki ambiguitas, Anda harus menemukan 2 Turunan Paling Kiri untuk string yang sama (atau 2 turunan paling kanan, atau 2 pohon turunan).

Bagaimana Anda memecahkan tata bahasa yang ambigu?

Metode Untuk Menghilangkan Ambiguitas-

  1. Dengan memperbaiki tata bahasa.
  2. Dengan menambahkan aturan pengelompokan.
  3. Dengan menggunakan semantik dan memilih parse yang paling masuk akal.
  4. Dengan menambahkan aturan prioritas atau aturan penguraian sensitif konteks lainnya.

Direkomendasikan: