Qrammatikanın birmənalı olmadığını necə göstərmək olar?

Qrammatikanın birmənalı olmadığını necə göstərmək olar?
Qrammatikanın birmənalı olmadığını necə göstərmək olar?
Anonim

"Əgər qrammatika ən azı 2 fərqli təhlil ağacı və ya törəmə yaradırsa, qrammatika birmənalı deyil." Başqa bir qayda: eyni qeyri-terminal üçün sol rekursivlik və sağ rekursivlik ilə bütün CFG (yararsız simvollar olmadan) da birmənalı deyil.

Qrammatikanın birmənalı olmadığını necə bilirsiniz?

Verilmiş daxiletmə sətri üçün birdən çox sol törəmə və ya birdən çox ən sağ törəmə və ya birdən çox analiz ağacı varsa, qrammatikanın qeyri-müəyyən olduğu deyilir. Əgər qrammatika birmənalı deyilsə, ona birmənalı deyilir. Qrammatikada qeyri-müəyyənlik varsa, o, kompilyatorun qurulması üçün yaxşı deyil.

Birmənalı olmayan qrammatika nümunəsi nədir?

Kompüter elmində qeyri-müəyyən qrammatika birmənalı qrammatika olduğu halda, birdən çox sol törəmə və ya təhlil ağacı ola bilən sətirin mövcud olduğu kontekstsiz qrammatikadır kontekstsiz qrammatikadır ki, onun üçün hər etibarlı sətir ən soldan unikal törəmə və ya təhlil ağacına malikdir.

Kontekstsiz qrammatikanın birmənalı olmadığını necə sübut edirsiniz?

3 Cavablar

  1. Faydasız simvollar olmadan və eyni simvol üçün sol və sağ rekursiya ilə bütün CFG birmənalı deyil. Ümumilikdə: …
  2. Qeyri-müəyyənliyi araşdırmaq üçün eyni sətir üçün 2 Ən Soldan törəmə (və ya ən sağda 2 törəmə və ya 2 törəmə ağacı) tapmalısınız.

Birmənalı olmayan qrammatikanı necə həll edirsiniz?

Qeyri-müəyyənliyi aradan qaldırmaq üçün üsullar-

  1. Qrammatikanı düzəltməklə.
  2. Qruplaşdırma qaydaları əlavə etməklə.
  3. Semantikadan istifadə edərək və ən mənalı analizi seçməklə.
  4. Üstünlük qaydaları və ya digər kontekstə həssas təhlil qaydaları əlavə etməklə.

Tövsiyə: