Linguagens Formais e Autômatos Prova 2 30/06/2008 Prof. Marcus Vinícius Midena Ramos Engenharia de Computação UNIVASF 1. (0.8 ponto) Conceitue: (a) (0.4 ponto) Gramática ambígua; É aquela que gera pelo menos uma sentença que possui duas ou mais seqüências de derivações mais à esquerda ou mais à direita, ou ainda mais de uma árvore de derivação distinta. (b) (0.4 ponto) Linguagem inerentemente ambígua. Linguagem que pode ser representada apenas por gramáticas ambíguas. (a | bb ) (c | dd ) , i ≥ 1 i 2. (1.5 pontos) Considere a linguagem i . (a) (1.0 ponto) Prove que ela não é regular; Seja w = a c , com | w |= 2n. Como | xy |≤ n, então y é composta apenas por símbolos a (pelo menos um). Portanto, a cadeia xz não pode pertencer a linguagem, pois ela possui uma quantidade de símbolos a que é inferior à quantidade de símbolos c. n n (b) (0.5 ponto) Prove que ela é livre de contexto. A seguinte gramática livre de contexto gera essa linguagem: S → XSY | ac | add | bbc | bddd , X → a | bb , Y → c | dd M = ({q , q , q }, {a , b }, δ, q , F ) M L(M ) 6= ∅ Deve-se testar com no máximo: P 2 = 7 cadeias distintas. Elas são , a , b , aa , ab , ba , bb a (b c | b c | d ), i ≥ 1) 3. (0.5 ponto) Seja 0 1 2 cadeias devem ser testadas em . Quantas e quais 0 para determinar se ? Justique a sua resposta. 2 i =0 i . 4. (1.5 pontos) Considere a linguagem nha: 1 i i ∗ ∗ i ∗ e obte- (a) (0.5 ponto) Uma gramática livre de contexto que gere essa linguagem; S → aXbC | aYc | aAD , X → aXb | , C → cC | , Y → aYc | B , B → bB | , A → aA | , D → dD | (b) (1.0 ponto) Um autômato de pilha que reconheça essa linguagem. q q q q q q q q q q q q q q q q q q S) S) S) X) X) C) C) Y) Y) B) B) A) A) D) D) a a) b b) c c) δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , δ( 0 , , = = = = = = = = = = = = = = = = = = q , aXbC ) q , aYc) q , aAD ) q , aXb ) q , ) q , cC ) q , ) q , aYc) q , B) q , bB ) q , ) q , aA) q , ) q , dD ) q , ) q , ) q , ) q , ) ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5. (1.0 ponto) Conceitue e dê exemplos (em gramáticas livres de contexto): (a) (0.5 ponto) Símbolo inútil; Símbolo que não gera nenhuma cadeia de Σ . Por exemplo, o símbolo S na gramática S → aS. ∗ (b) (0.5 ponto) Símbolo inacessível. Símbolo que não aparece em nenhuma forma sentencial gerada desde a raiz da gramática. Por exemplo, o símbolo X na gramática S → a , X → b. 2 6. (2.0 pontos) Responda, justicando as suas respostas: ab Sim, pois é gerada pela gramática livre de contexto S → aS | b. a b ,i ≥ 1 Sim, pois é gerada pela gramática sensível ao contexto S → aSb , S → abbbb. a b c d ,i ≥ 1 Não. Basta tomar a cadeia w = a b c d , que possui comprimento maior ou igual a n, e vericar que xy é composta apenas por símbolos a (pelo menos um). Logo, a cadeia xz não pode pertencer à linguagem e L não é regular. ab i j Sim. Basta considerar que essa linguagem pode ser obtida pela concatenação do complemento de duas outras linguagens regulares (aaa ) , múltiplo de 3 e (bbbbb ) , múltiplo de 5. Como as linguagens regulares são fechadas em relação às operações de complemento e concatenação, também essa é regular. G = ({S , X , Y , Z , a , b }, {a , b }, {S → XY | b , X → ZS , Z → a , Y → a }, S ) w = a ba ∈ L(G ) w w = uvwxy (a) (0.5 ponto) A linguagem ∗ é livre de contexto? (b) (0.5 ponto) A linguagem i i +3 (c) (0.5 ponto) A linguagem i i +1 , é sensível ao contexto? i +2 i +3 n (d) (0.5 ponto) A linguagem i j tal que , é regular? n +1 n +2 n +3 não é múltiplo de 3 e não é múltiplo de 5 é regular? ∗ ∗ 7. (1.2 ponto) Considere 4 e a cadeia 4 . (a) (0.4 ponto) Construa uma árvore de derivação para a cadeia (b) (0.4 ponto) Mostre uma subdivisão da cadeia ; que satisfaça aos critérios do Pumping Lemma para as linguagens livres de contexto; uv wx y uv wx y (c) (0.4 ponto) Mostre como a árvore de derivação do item (7a) pode 0 0 2 2 ser modicada para provar que as sentenças e também pertencem a L(G ) . 8. (1.5 ponto) Considere os casos abaixo e responda às perguntas, justicando as suas respostas: L w ∈L M w Sim, pela denição de linguagem recursiva. L w 6∈ L M w Sim, pela denição de linguagem recursiva. (a) (0.3 ponto) Se Turing (b) (0.3 ponto) Se Turing é recursiva e , existe alguma Máquina de que sempre pára com a entrada é recursiva e , existe alguma Máquina de que sempre pára com a entrada 3 ? ? L w∈L M w Sim, pela denição de linguagem recursivamente enumerável. L w 6∈ L M w Depende. Se L é recursiva, então existe. Senão, não existe. L M w w L Não, em decorrência das denições de linguagem recursiva e recursivamente enumerável. (c) (0.3 ponto) Se é recursivamente enumerável e alguma Máquina de Turing (d) (0.3 ponto) Se é recursivamente enumerável e alguma Máquina de Turing (e) (0.3 ponto) Se ? , existe que sempre pára com a entrada ? é recursivamente enumerável e não-recursiva, existe alguma Máquina de Turing trada , existe que sempre pára com a entrada , independentemente de 4 que sempre pára com a en- pertencer ou não a ?