Exercícios_Linguagen..

Download Report

Transcript Exercícios_Linguagen..

Exercícios
Linguagens Formais
1.
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.
c) (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
(a) 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.
(i)
Se t = 1 então S => a ou S => b. Portanto, não possuem ba como
subcadeia.
(ii) Supomos que, para 1  t < k, se S =>* w e |w|= t, então w não
possui ba como subcadeia.
(iii) 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-1 yb, 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:
(a) 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.