150 likes | 323 Views
Exercícios. Linguagens Formais. Para cada um dos pares de descrições de linguagens a seguir, escolha o relacionamento correto de acordo com essas quatro opções: (1) (2): linguagem (1) é um subconjunto da linguagem (2). (1) (2): linguagem (1) é um super-conjunto da linguagem (2).
E N D
Exercícios Linguagens Formais
Para cada um dos pares de descrições de linguagens a seguir, escolha o relacionamento correto de acordo com essas quatro opções: (1) (2): linguagem (1) é um subconjunto da linguagem (2). (1) (2): linguagem (1) é um super-conjunto da linguagem (2). (1) = (2): as linguagens (1) e (2) são as mesmas. (1) ? (2): as linguagens (1) e (2) não possuem relação de subconjunto; ou seja, existem cadeias em (1) que não estão em (2), e há cadeias em (2) que não estão em (1). a) (1): A linguagem da GLC com as produções S 0S1 | 1S0 | λ (2): A linguagem da expressão regular (0 + 1 )*. (1) está contida em (2). (2) gera todas as cadeias de 0’s e 1’s, enquanto (1) não gera cadeias como 11, ou qualquer string de tamanho ímpar.
b) (1): A linguagem da GLC com as produções S AS | SB | λ, A 0 e B 1 (2): A linguagem da expressão regular 0*1* As linguagens são iguais.
(1): A linguagem da expressão regular (0 + 1)*11(0 + 1)* (2): A linguagem da expressão regular (0*1*11)*0*110*1* (1) contém (2). (1) é formada por todas as cadeias de 0’s e 1’s com dois 1’s consecutivos. (2) não possui algumas dessas cadeias, como por exemplo as terminadas em 110101.
2) Seja L a linguagem consistindo de todas as cadeias de zero ou mais 0’s seguidas por um ou mais 1’s, seguidas por dois ou mais 2’s. Por exemplo, 001122, 122 e 0111122 estão em L; 012 (poucos 2’s) e 0112122 (um 2 precede um 1) não estão. a) Escreva uma expressão regular cuja linguagem seja L. 0*11*222*
b) Dê uma gramática livre de contexto que gere a mesma linguagem. É suficiente apenas dar as produções, assumindo que S é o símbolo inicial. Existem várias gramáticas aceitáveis, uma delas é: S ABC A 0A | λ B 1B | 1 C 2C | 22
3) Construa uma gramática regular para cada uma das linguagens a seguir: (a) o conjunto das cadeias sobre {a, b, c} que não contém aa. S aA | bS | cS | λ A bS | cS | λ (b) o conjunto das cadeias sobre {a, b, c} nas quais cada b é seguido por pelo menos um c. S aS | bA | cS | λ A cS (c) o conjunto das cadeias sobre {a, b} nas quais o número de a’s é divisível por 3. S aA | bS | λ A aB | bA B aS | bB
d)O conjunto das cadeias sobre {a, b} nos quais cada a é precedido (imediatamente) ou seguido (imediatamente) por b. S aA | bB | λ A bB B aS | bB | λ
4) Seja G a gramática S aS | Sb | ab | SS (a) Dê uma expressão regular para L(G). (a+b+)+ (b) Construa duas derivações mais a esquerda de aabb. S aS aSb aabb S Sb aSb aabb (c) Construa as árvores de derivação para as derivações da parte (b) S S a S S b S b a S a b a b
(d) Construa uma gramática não ambígua equivalente a G. S aS | abA A bA | S | λ (e) Escreva uma gramática regular equivalente. S aS | aB B bA A bA | aS | aB | λ
5) Seja G a gramática livre de contexto com as seguintes produções: S aS | Sb | a | b • Prove, por indução no tamanho da derivação, que todas as cadeias w Є L(G) tem a propriedade de não conter ba como uma subcadeia. Seja t = tamanho da indução. • Se t = 1 então S => a ou S => b. Portanto, não possuem ba como subcadeia. • Supomos que, para 1 t < k, se S =>* w e |w|= t, então w não possui ba como subcadeia. • Vamos mostrar que a proposição vale para t = k Nesse caso, S =>k w. Como em cada passo de derivação exatamente um terminal é gerado (a ou b), então necessariamente |w| = k. Além disso, w foi gerado num caminho S => aS =>k-1 ax ou S=> Sb =>k-1yb, e |x| = |y| = k-1. Por (ii), nem x nem y têm ba como subcadeia. Logo, ax e yb também não têm ba como subcadeia c.q.d.
6) Construa uma gramática para cada uma das linguagens: (a) {ambn | m > n} S aS | aA A aAb | λ (b) {w Є {a, b}* | o número de a’s em w é o dobro do número de b’s} S aSaSbS | aSbSaS | bSaSaS | λ (c) {ambn | n ≤ m ≤ 2n} S aSb | aaSb | λ (d) {ambncpdq | m + n ≥ p + q}
6) Construa uma gramática para cada uma das linguagens: (a) {ambn | m > n} S aS | aA A aAb | λ (b) {w Є {a, b}* | o número de a’s em w é o dobro do número de b’s} S aSaSbS | aSbSaS | bSaSaS | λ (c) {ambn | n ≤ m ≤ 2n} S aSb | aaSb | λ (d) {ambncpdq | m + n ≥ p + q} S aSd | A | B = gera igual número de a e d A bAd | C = gera igual número de b e d B aBc | C | D = gera igual número de a e c C bCc | E = geral igual número de b e c D aD | E = gera pelo menos um a E bE | λ = gera pelo menos um b
Exercícios da 4a. Lista (material web) 6) Indicar qual é a linguagem gerada pela gramática dada, e classificá-la: • S A0 A 1A A0 10 L = 1+ 0 G.Regular equivalente: S A0 A 1A | 1
(e) S 0A | 1B A 0A | 0 B 1B | 1 L= (0+ + 11+) A linguagem é regular.