|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
[OT] Grammatiche libere dal contesto
Salve ragazzi, sono alle prese con un esame di Informatica Teorica ed ho qualche dubbio sulla risoluzione di qualche esercizio
sulle grammatiche libere dal contesto (CFG). L'esercizio dice che dato un linguaggio L={(a^n)(b^2n)(c^k)|n>=1,k>=1}, devo costruire una CFG che generi tale linguaggio. Io l'ho risolvo così: creo prima di tutto una grammatica che generi le stringhe della forma (a^n)(b^2n), cioè A->abb|aAbb Poi creò una grammatica che generi tutte le stringhe di c (B->cB|c) .A questo punto metto assieme le due grammatiche nell'assioma S->AB In definitiva la grammatica cercata è: S->AB A->abb|aAbb B->cB|c Infatti le produzioni seguenti generano stringhe appartenenti al linguaggio L: S=>AB=>aAbbB=>aAbbcB=>aaAbbbbcB=>aaAbbbbcc=>aaabbbbbbcc Se dovessi costruire una grammatica che generi il linguaggio L={(a^2n)(c^k)(b^n)(c^h)|n>=1,k>=1,h>=1}, come mi devo muovere? La difficoltà sta nel fatto che questa volta (a^2n) e (b^n) sono divisi da (c^k), quindi risulta più complicato tenerli legati.
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Si usa lo stesso meccanismo che hai usato tu steso nell'altro esempio, con una piccola modifica:
S -> AC A -> aaAb | C C -> cC | c Dal simbolo iniziale generi AC; da A applicando la prima produzione per n volte generi la (a^2n)C(b^n) da cui generi (a^2n)(c^k)(b^n) applicando le produzioni per C, Ciao.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Grazie tante
Adesso me la vado a studiare e ti faccio sapere se ho capito tutto. Grazie ancora.
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Di nuovo grazie. Tutto Ok
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
u,v appartengono a {a,b}*
Devo sapere quale dei due linguaggi è context-free ed in quel caso devo fornire una grammatica adeguata al linguaggio. Sono quasi certo che L2 sia context-free, devo riuscire a trovare una grammatica che generi questo linguaggio. L1 penso che non sia context-free e questo si dimostra attraverso il lemma di iterazione (noto anche come pumping lemma)
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
L1 = u(a^n)(b^m)v è context-free ; la seguente grammatica lo genera (lamda è la parola vuota):
S -> UABV U -> Uuu | lamda V -> Vvvv| lambda A -> aA | a B -> bB | b U genera stringhe con un numero di u multiplo di 2; V genera stringhe con un numero di v multiplo di 3; A genera stringhe con un numero di a maggiore di uno; B genera stringhe con un numero di b multiplo di 3, quindi S genera il linguaggio. L'altro non penso proprio sia acontstuale, ciao.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals Ultima modifica di anx721 : 19-02-2004 alle 12:15. |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Quote:
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:25.



















