Как да покажем, че граматиката е двусмислена?

Съдържание:

Как да покажем, че граматиката е двусмислена?
Как да покажем, че граматиката е двусмислена?
Anonim

"Ако една граматика произвежда поне 2 отделни дървовидни разбори или производни, тогава граматиката е двусмислена." Друго правило: всички CFG (без безполезни символи) с лява рекурсивност и дясна рекурсивност за един и същ нетерминал също са двусмислени.

Как да разберете дали дадена граматика е двусмислена?

За граматиката се казва, че е двусмислена, ако съществува повече от една най-лява деривация или повече от една най-дясна деривация или повече от едно дърво за синтактичен анализ за дадения входен низ. Ако граматиката не е двусмислена, тогава тя се нарича недвусмислена. Ако граматиката има неяснота, тогава тя не е добра за изграждане на компилатор.

Какво е двусмислена граматика, дайте пример?

В компютърните науки двусмислена граматика е безконтекстна граматика, за която съществува низ, който може да има повече от една най-лява деривация или дърво за синтактичен анализ, докато недвусмислена граматика е безконтекстна граматика, за която всеки валиден низ има уникално най-ляво деривация или дърво за синтактичен анализ.

Как доказвате, че една безконтекстна граматика е двусмислена?

3 отговора

  1. Всички CFG без безполезни символи и с лява и дясна рекурсия за един и същи символ е двусмислено. Като цяло: …
  2. За да проучите неяснотата, трябва да намерите 2 най-леви деривации за един и същ низ (или 2 най-десни деривации, или 2 дървета на деривация).

Как решавате двусмислена граматика?

Методи за премахване на неясноти-

  1. Чрез коригиране на граматиката.
  2. Чрез добавяне на правила за групиране.
  3. Чрез използване на семантика и избор на синтактичен анализ, който има най-голям смисъл.
  4. Чрез добавяне на правила за приоритет или други контекстно-чувствителни правила за синтактичен анализ.

Препоръчано: