Exercício 07.52

Desenvolva uma Gramática Livre do Contexto (GLC) sobre o alfabeto Σ = {1, 2, 3, 4}, que reconheça a linguagem L = {w | w possui 1234 ou 1212 ou 3434 como prefixo, 3412 ou 4421 ou 1243 ou 2234 como subpalavra e 2212 ou 1123 ou 2431 ou 3444 como sufixo}.


Resposta com recursividade à esquerda

G = ({exp, pre, presub, sub, subsuf, suf, alf}, {1, 2, 3, 4}, P, exp)
P = {< exp >     ->  < pre > < alf > < sub > < alf > < suf >
                 |   < presub > < alf > < suf >
                 |   < pre > < alf > < subsuf >
                 |   123412212
                 |   123412431
                 |   343412212
                 |   343412431
                 |   1234421123
                 |   3434421123
                 |   1212431
                 |   121243444
                 |   121223444
     < pre >     ->  1234
                 |   1212
                 |   3434
     < presub >  ->  123412
                 |   1234421
                 |   121243
                 |   1212234
                 |   343412
                 |   3434421
     < sub >     ->  3412
                 |   4421
                 |   1243
                 |   2234
     < subsuf >  ->  3412212
                 |   3412431
                 |   4421123
                 |   12431
                 |   1243444
                 |   223444
     < suf >     ->  2212 
                 |   1123
                 |   2431
                 |   3444
     < alf >     ->  < alf > 1
                 |   < alf > 2
                 |   < alf > 3
                 |   < alf > 4
                 |   ε  }

Resposta com recursividade à direita

G = ({exp, pre, presub, sub, subsuf, suf, alf}, {1, 2, 3, 4}, P, exp)
P = {< exp >     ->  < pre > < alf > < sub > < alf > < suf >
                 |   < presub > < alf > < suf >
                 |   < pre > < alf > < subsuf >
                 |   123412212
                 |   123412431
                 |   343412212
                 |   343412431
                 |   1234421123
                 |   3434421123
                 |   1212431
                 |   121243444
                 |   121223444
     < pre >     ->  1234
                 |   1212
                 |   3434
     < presub >  ->  123412
                 |   1234421
                 |   121243
                 |   1212234
                 |   343412
                 |   3434421
     < sub >     ->  3412
                 |   4421
                 |   1243
                 |   2234
     < subsuf >  ->  3412212
                 |   3412431
                 |   4421123
                 |   12431
                 |   1243444
                 |   223444
     < suf >     ->  2212 
                 |   1123
                 |   2431
                 |   3444
     < alf >     ->  1 < alf >
                 |   2 < alf >
                 |   3 < alf >
                 |   4 < alf >
                 |   ε  }

Recomendamos

Duolingo Vida de Programador Um Sábado Qualquer