Você está na página 1de 3

Linguagens Formais e Autômatos

Lista de exercícios
Luiz Alberto do Carmo Viana
25 de outubro de 2019

Questão 1 - Considere o alfabeto Σ = {a, b,(,), ∪, ∗, ∅}. Construa uma


gramática livre de contexto que gera todas as strings em Σ∗ que são
expressões regulares sobre {a, b}.

1. ∅ e cada membro de Σ é uma expressão regular.

2. Se α, β são expressões regulares, então α β

3. Se α, β são expressões regulares, então também é α∪β.

4. Se α é uma expressão regular, então também é α *.

5. Se α for uma expressão regular, o mesmo será (α).

6. Nada mais é uma expressão regular.

Esta definição fornece a base para uma gramática para expressões regulares:

G = (V, Σ, R, S) com V = {S, a, b, (,), ∪, *, ∅}, Σ = {a, b, (,), ∪, *, ∅}, R = {

S → ∅ / * parte da regra 1, acima


S→a/*"
S→b/*"
S → SS / * regra 2
S → S ∪ S / * regra 3
S → S * / * regra 4
S → (S) / * regra 5 }
Questão 2 - Mostre que, se M = (K, Σ, Γ, ∆, s, F) é um autômato de pilha,
então existe um outro autômato de pilha M0 = (K0, Σ, Γ, ∆0, s, F) tal que L
(M0) = L(M) e, para cada ((q, u, β), (p, γ)) ∈ ∆0, |β| + |γ| ≤ 1.

L2 = {a n 2 : n ≥ 0}

L = {an2: n ≥ 0}. Suponha L = {an2: n ≥ 0} são contexto livre. Então n = M2. Portanto
o w é a cadeia com o M22, ou M4, a's). Então |w | ≥ K, desde que M > K. Portanto
uvvxyyz deve estar em L. Considerando w, o seguinte elemento de L é a cadeia
com (M2 + 1) 2 a's. Isto é M4 2M2 1. Mas sabemos que |vxy | ≤ M, portanto não
podemos bombear em mais do que o M da 's quando só bombeamos uma vez.
Assim a cadeia que somente criamos não pode ter mais do que M4 + M da 's

L3 = {www: w ∈ {a, b} ∗}

L = {www: w ∈ {a, b}*}. Comprovar diretamente que L = {www: w ∈ {a, b}*}


não é contexto livre. Vamos considerar L1 = L ∩ a*ba*ba*b. Se L for contexto
livre, L1 também deve ser. L1 = {um proibição b: n ≥ 0}. Para mostrar que L1 não
é contexto livre, vamos escolher w = aMbaMbaMb. Primeiro observamos isto
nem v nem y podem conter b, porque se qualquer fizesse, então, quando
bombeamos, teríamos mais de três b's, que são não permitido. Portanto ambos
devem estar em um dos três umas regiões. Consideramos os casos:
(1, 1) Que o grupo da 's não combinará já com outros dois, portanto a cadeia
não está em L1.
(2, 2) "
(3, 3) "
(1, 2) Pelo menos um destes dois grupos mandará bombear algo nele e não
combinará aquele que se omite.
(2, 3) "
(1, 3) excluído desde então |vxy | ≤ M, portanto vxy não pode medir a região
meia do a's.

L4 = {w ∈ {a, b, c} ∗ : w tem o mesmo número de a’s, b’s e c’s}


L = {w ∈ {a, b, c} *: w tem números iguais de a, b e c} com um idioma regular.
Desta vez, construímos L1 = L ∩ a * b * c *. L1 deve ser contexto livre se L é.
Mas L1 = um b n c n, não é livre de contexto.

Autômato de pilha é uma sêxtupla M=(Q,,,,q0,F), com


Q - conjunto de estados; - alfabeto de entrada; - alfabeto de pilha;
- relação de transição: (Q * *) (Q *);
q0 - estado inicial; F - conjunto de estados finais F Q
Se ((p, u, ), (q,)) , então estando M no estado p, com no topo da
pilha, poderá consumir u da cadeia de entrada, e evoluir para o estado q,
modificando para o topo da pilha. Este par ordenado é chamado transição
de M. As transições podem ser aplicadas de forma não-determinística.