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 | }