Buscar

Exercícios -Linguagens e Gramáticas Resolvidos


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1) Seja  = {a, b} um alfabeto. Determine o fecho transitivo reflexivo (*) e o 
fecho positivo (+) sobre este alfabeto. 
 
* = {, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, ...} 
+ = * - {} = {a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, 
...} 
 
2) Sabendo-se que o alfabeto de uma dada linguagem L é  = {0, 1}, e que 
L = { |   *  ||  3}, determine quais as sentenças desta linguagem. 
L = {, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111} 
3) Sabe-se que uma linguagem L possui as sentenças {abaa, aabbaaaa, 
aaabbbaaaaaa, aaaabbbbaaaaaaaa, ...}. Determine formalmente que 
linguagem é esta. 
L = { |   *   = anbna2n  n > 0} 
4) Desenvolva uma gramática que gere a linguagem correspondente aos 
identificadores da linguagem Pascal, isto é, palavras formadas por uma ou 
mais letras ou dígitos, as quais sempre se iniciam por uma letra. 
 
G1 = (VN, VT, P, S), onde: 
VN = {S, A, L, D} 
VT = {a, b, c, ..., z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 
P = { S  LA 
A  LA | DA | 
L  a | b | c | ... | z 
D  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
} 
Derive as cadeias: a, v6, ovo. 
S  LA  aA  a 
S  LA  vA  vDA  v6A  v6 
S  LA  ao  oLA  ovA  ovLA  ovoA  o
 
 
 
G2 = (VN, VT, P, S), onde: 
VN = {S, L, D} 
VT = {a, b, c, ..., z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 
P = { S  SL | SD | L 
L  a | b | c | ... | z 
D  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
} 
Derive as cadeias: a, v6, ovo. 
S  L  a 
S  SD  S6  L6  v6 
S  SL  So  SLo  Svo  Lvo  ovo 
 
Observe que L(G1) = L(G2); isto é, G1 e G2 são equivalentes. 
 
5) Considerando a linguagem anterior, construa uma gramática que gere a 
linguagem correspondente aos identificadores da linguagem Pascal, mas que 
possua no máximo tamanho de seis caracteres. 
 
G = (VN, VT, P, S), onde: 
VN = {S, A, B, C, D, E, F, L} 
VT = {a, b, c, ..., z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 
P = { S  LA 
A  LB | DB |  
B  LC | DC |  
C  LE | DE |  
E  LF | DF |  
F  L | D | 
L  a | b | c | ... | z 
D  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
} 
 
 
6) Desenvolva uma gramática que gere expressões aritméticas com parênteses 
balanceados, os operadores de multiplicação e/ou adição (representados por 
* e +, respectivamente) e um operando, representado por x. Por exemplo, as 
seguintes expressões devem ser válidas: x, x*(x + x), x + x * x, (((x))), etc.. 
 
G = (VN, VT, P, E), onde: 
VN = {E} 
VT = {+, -, *, /, (, ), x} 
P = {E  E + E | E – E | E * E | E / E | (E) | x} 
 
7) Desenvolva gramáticas que gerem as seguintes linguagens: 
 
a) L(G1) = {ancbm | n e m  0} 
Note que L(G1) = {c, ac, cb, acb, aac, aacb, aacbb, cbb, acbb, aacbb, ...} 
G1 = (VN, VT, P, S), onde: 
VN = {S, A, B} 
VT = {a, b, c} 
P = { S  AcB 
A  aA | 
B  bB | 
} 
 
S  AcB  cB  c 
S  AcB  aAcB  acB  ac 
S  AcB  cB  cbB  cb 
S  AcB  aAcB  acB  acbB  acb 
 
G2 = (VN, VT, P, S), onde: 
VN = {S, A} 
VT = {a, b, c} 
P = { S  aS | cA 
A  bA | 
} 
 
 
S  cA  c 
S  aS  acA  ac 
S  cA  cbA  cb 
S  aS  acA  acbA  acb 
 
Note que L(G1) = L(G2); isto é, G1 e G2 são equivalentes. 
b) L(G2) = {10n10n | n > 0} 
G = (VN, VT, P, S), onde: 
VN = {S, A} 
VT = {0, 1} 
P = { S  1A 
A  0A0 | 010 
} 
Gere as cadeias 1010, 100100 e 10001000: 
S  1A  1010 
S  1A  10A0  100100 
S  1A  10A0  100A00  10001000 
 
c) L(G3) = {(ab)ncam | n > 0, m  0} 
 
G1 = (VN, VT, P, S), onde: 
VN = {S, T} 
VT = {a, b, c} 
P = { S  abS | abcT 
T  aT | 
} 
 
Outro exemplo seria: 
 
G2 = (VN, VT, P, S), onde: 
VN = {S, A, B} 
VT = {a, b, c} 
 
 
P = { S  AcB 
A  abA | ab 
B  aB | 
} 
d) L(G4) = {10n110m | n  0, m  2} 
G = (VN, VT, P, S), onde: 
VN = {S, A, B} 
VT = {0, 1} 
P = { S  1A11B 
A  0A | 
B  aB | aa 
} 
 
e) L(G5) = {  * |  = {a, b, c, d, e } e  inicia-se com a e termina com e} 
f) L(G6) = {  * |  = {a, b, c} e  inicia-se com a e tem comprimento 
par ou inicia-se com b e tem comprimento ímpar} 
g) L(G7) = {  * |  = {a, b} e  possui a nas posições pares e b nas 
posições ímpares} 
h) L(G8) = {  * |  = {0, 1, 2, ... , 9} e  inicia-se com 0 e a soma de 
todos os seus dígitos é par ou inicia-se com 1 e a soma de todos os seus 
dígitos é ímpar} 
i) L(G9) = {   {0, 1} |  contém 0101 como subcadeia } 
j) L(G10) = {   {0, 1} |  não possui 110 como subcadeia } 
k) L(G11) = { r |  é uma sentença de {a, b}*} 
l) L(G12) = { aib jck | i = j ou j = k e i, j, k  0 } 
 
8) Sejam as gramáticas definidas a seguir. Determine qual é a linguagem 
gerada por cada uma delas: 
 
a) G1 = (VN, VT, P, S), onde: 
VN = {S} 
VT = {a, b, c} 
P = {S  aSb | c} 
 
 
b) G2 = (VN, VT, P, S), onde: 
VN = {S, A, B} 
VT = {0, 1} 
P = {S  0 | 0A, 
A  1B, 
B  0 | 0A} 
 
c) G3 = (VN, VT, P, S), onde: 
VN = {S} 
VT = {a, b, c} 
P = {S  aSa | bSb | cSc | a | b | c | }

Mais conteúdos dessa disciplina