"Bir dilbilgisi en az 2 farklı ayrıştırma ağacı veya türetme üretiyorsa, o zaman dilbilgisi belirsizdir." Başka bir kural: aynı terminal olmayan için sol özyinelemeli ve sağ özyinelemeli tüm CFG'ler (işe yaramaz semboller olmadan) da belirsizdir.
Bir dilbilgisinin belirsiz olup olmadığını nasıl anlarsınız?
Verilen girdi dizgisi için en soldan birden fazla türetme veya en sağdan birden fazla türetme veya birden fazla ayrıştırma ağacı varsa, bir dilbilgisinin belirsiz olduğu söylenir. Dilbilgisi belirsiz değilse, o zaman belirsiz olarak adlandırılır. Dilbilgisi belirsizliğe sahipse, derleyici yapımı için iyi değildir.
Belirsiz bir dilbilgisi örneği nedir?
Bilgisayar biliminde, belirsiz bir dilbilgisi, en soldan birden fazla türetme veya ayrıştırma ağacına sahip bir dizenin bulunduğu bağlamdan bağımsız bir dilbilgisidir, ancak açık bir dilbilgisi her geçerli dizenin benzersiz bir en soldaki türetme veya ayrıştırma ağacına sahip olduğu bağlamdan bağımsız bir dilbilgisidir.
Bağlamdan bağımsız bir dilbilgisinin belirsiz olduğunu nasıl kanıtlarsınız?
3 Yanıt
- İşe yaramaz semboller içermeyen ve aynı sembol için sol ve sağ özyinelemeli tüm CFG'ler belirsizdir. Genel olarak: …
- Belirsizliği araştırmak için, aynı dize (veya en sağdaki 2 türetme veya 2 türetme ağacı) için 2 En Sol Türev bulmalısınız.
Belirsiz dilbilgisini nasıl çözersiniz?
Belirsizliği Kaldırma Yöntemleri-
- Dilbilgisini düzelterek.
- Gruplama kuralları ekleyerek.
- Semantik kullanarak ve en anlamlı ayrıştırmayı seçerek.
- Öncelik kurallarını veya içeriğe duyarlı diğer ayrıştırma kurallarını ekleyerek.