Linguagens Formais Linguagens Regulares Autômatos Finitos
Download
Report
Transcript Linguagens Formais Linguagens Regulares Autômatos Finitos
Linguagens Formais
Linguagens Regulares
Autômatos Finitos
Autômatos Finitos Deterministicos
1) Seja M = ({a,b}, {S0, S1, S2, S3}, S0, , {S0,S2}) um AFD
(S0, a) = S1
(S0, b) = S0
(S1, a) = S3
(S1, b) = S2
(S2, a) = S1
(S2, b) = S2
(S3, a) = S3
(S3, b) = S3
a) Desenhe o seu DTE.
b) Seja a palavra w = abaab na fita de entrada do AFD, use a Extensão da
Função de Transição para verificar se a palavra é aceita pelo AFD feito
anteriormente.
c) Qual a linguagem do AFD acima?
2) Dado
a)
b)
c)
d)
= {a,b,c} e L(M) = {w | w comece e termine com o mesmo símbolo}
Defina a quíntupla do AFD
Construa a Tabela de Transição de Estados
Construa o Diagrama de Transição de Estados
Mostre que a palavra w=abcba é aceita pelo autômato utilizando a
definição da Extensão da Função de Transição
3) Considere o DTE apresentado abaixo:
a) Descreva a linguagem aceita pelo AFD
b) Mostre que a palavra w=abaab é aceita por este autômato utilizando a
definição da Extensão da Função de Transição
4) Construa um AFD para aceitar cada uma das seguintes linguagens descritas
abaixo. Considere que = {0, 1}.
a) o conjunto de todas as palavras terminadas em 00
b) o conjunto de todas as palavras com três 000 consecutivos
c) o conjunto de todas as palavras tais que cada bloco de quatro símbolos
consecutivos comecem pelo menos com dois 0’s
d) o conjunto de todas as palavras que contenham a subpalavra 110.
5) Dado
= {a,b,c}: L(M) = {w ∈
imediatamente pelo símbolo c}
a)
b)
c)
d)
| onde todo símbolo b em w seja seguido
Defina a quíntupla do AFD
Construa a Tabela de Transição de Estados
Construa o Diagrama de Transição de Estados
Mostre se a palavra w=abbac é aceita ou não pelo autômato utilizando a
definição da Extensão da Função de Transição
6) Construa AFD’s que reconheçam as seguintes linguagens:
a)
b)
c)
d)
e)
f)
g)
L = { w |w ∈ (0,1,2)+ e não contém 2 zeros ou 2 uns consecutivos}
L = { w | w ∈ (a,b)+ e o quinto símbolo da esquerda para direita de w é a }
L = { aibbcjd | i ≥ 1 e j ≥ 0 }
L = { w | w ∈ (a,b)+ e w possui aaa como subpalavra }
L = { w | w ∈ (a,b)+ e o sufixo de w é bb }
L = { w1ww1 | w e w1 ∈ (a,b)* e |w1|=2 }
L = { w | w ∈ (a,b)+ e possui aa ou bb como subpalavra }
7) Minimize o seguinte AFD
0
1
0
1
1
2
3
4
0
0
1
1
0
5
1
6
1
1
7
1
0
0
0
8
Autômatos Finitos Não Deterministicos
1)
Desenvolva AFND’s que reconheçam as seguintes linguagens:
a) L = { w/w ∈ (a,b,c)+, aa ou bb é subpalavra e cccc é sufixo de w}
b) L = { w / w ∈ (a,b)+ e o quarto símbolo da direita para a esquerda de w
éa}
c) L = { w1w2w1 / w1, w2 ∈ (0,1)+ e |w1|=2 }
2)
a)
b)
Determinize os seguintes AFND’s:
3) Transforme para AFND sem movimentos ε:
a)
q1
ε
a|b|c
ε
q0
q2
ε
c
q4
q5
a
b)
b
q3
b
q7
c
c
q6
b
ε
q0
a
q1
4) Converta o seguinte AFND em AFD
ε
1
2
ε
x
3
ε
z
4
ε
y
ε
5
6
ε
7
5) Minimize os autômatos abaixo:
a)
q0
a
q1
b
q2
b
b
a
a
q3
b
a
q4
b)
q0
b
q2
a
a
a
q4
a
a
b
b
q1
b
q3
b
q5
a
Expressões Regulares
1) Dado Σ={a,b} descreva textualmente, as linguagens geradas pelas
expressões regulares abaixo
a)
b)
c)
d)
e)
f)
a|b
(a|b)(a|b)
a*
(a|b)*
(a|a*b)
(b | ab)* ( | a)
g)
h)
i)
j)
k)
(b | a)* (aba) (b|a)*
(aa | b)* (a | bb)
(aa | b)* (a | bb)
a (b | a) (b | a)+
((ab)*b | ab*)
2) Monte a ER para as seguintes linguagens. Onde
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
= {0,1}
L(M) = {w|w tem comprimento multiplo de 3}
L(M) = {w|w contem a subpalavra 001}
L(M) = {w|w é um numero binário de dois digitos
L(M) = {w|w é um numero binário ou ε}
L(M) = {w|w é um numero binário que contem exatamente um 1}
L(M) = {w|w é um numero binário que contem exatamente três 1}
L(M) = {w|w é um numero binário que inicia com 1 e termina com 00}
L(M) = {w w é qualquer numero binário que termina com 0}
L(M) = {w|w contem a subpalavra 010}
L(M) = {w|w começa com 1 e termina com 0 ou contem pelo menos três
1s}
3) Desenvolva uma Expressão Regular que gerem a seguinte linguagem:
L = { w | w é um número inteiro ou w é um número real ou w é
identificador da linguagem Pascal }
4) Determine os AF equivalentes as seguintes expressões regulares:
a)
b)
c)
d)
d)
e)
f)
(aa | b)*(a | bb)
(b | ab)*(ε | a)
(0 | 1)*11(0 | ε)1
(a b)* (a b)
(if|then|else)
(ab)|(a*)
((ab)*b | ab*)
Gramáticas
1) Dada a gramática G = ({R, S, T, X}, {a, b}, P, R)
Onde P é:
R → XRX | S
S → aTb | bTa
T → XTX | X | ε
X → a|b
a) Quais os símbolos terminais, não terminais e o símbolo de partida?
b) Dê três palavras aceitas pela gramática.
c) Dê três palavras não aceitas pela gramática.
d) Assinale Verdadeiro ou Falso.
aba
( )T
( ) T * aba
( )T
T
( ) XXX ->* aba
( ) T * XX
( ) T *XXX
( )S *ε
2) Dado o Σ = {0,1} de a gramática que gere as seguinte linguagem {w | w
contem pelo menos três 1’s}
3) Explique a diferença entre sentença e forma sentencial.
4) Defina o que é linguagem gerada por uma gramática.
5) Verifique se a palavra w = (id + id) /id é gerada pela gramática G, tal que:
G = ({EXPR, OP}, {<, >, id, -, +, *, /}, P, EXPR}
Onde P é:
EXPR → EXPR OP EXPR(EXPR)EXPRid
OP → +-*/
Gramáticas Regulares
1) Modificar a gramática abaixo de modo a incluir a sentença vazia.
G = { { S, A }, {a}, P, S }
Onde P é:
S → aA
A → aA | a
2) Obtenha o AFD da seguinte gramática:
G = ({S, B}, {0, 1}, P, S)
Onde P é:
S → 0S1B
B → 0S1B ε
3) Dada a gramática abaixo forneça o DTE do AFD equivalente.
G = ({R, S, T, X}, {a, b}, P, R)
Onde P é:
R → aS | aR | bR
S → aT
T → aX | bX
X → a|b
4) Defina a gramática equivalente aos seguintes AFDs.
a
A
B
a
A
b
a,b
B
a
a
A
b
B
C
A
a
a
5) Construa uma Gramática Regular G tal que L(G) = { w | w ∈ (0,1)+ e não
tenha 1’s consecutivos}
6) Determine os AF equivalentes as gramáticas regulares abaixo:
a) G=({ S, A, B }, { a, b }, P, S)
Onde P é :
S → aA|bB|ε
A → aA|bB
B → bB|b
b) G=({ S, A, B, C }, { 0, 1, 2 }, P, S)
Onde P é:
S → 0S|1A|2B|0|0C
A → 1S|1
B → 2S|2
C → 0S|0
Gramáticas Livre de Contexto
1) Dada a gramática:
G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E → E + E | E * E | ( E ) | - E | id
Obtenha as derivações mais à esquerda e mais à direita das sentenças a
seguir:
a) id * id * id
b) (id + id ) * id
c) –(id + id ) * id + id
2) Dada a gramática abaixo faça a arvore de derivação para as seguintes
sentenças.
G = ({S}, {a, b}, {S → aSbSSε}, S)
a) abab
b) aaabbb
c) aababb
3) Dada a gramática abaixo faça a arvore de derivação para as seguintes
sentenças.
G = ({E, T, F}, {+. *, (, ), a}, P, E)
Onde P é:
E → E + T T
T → T * FF
F → ( E )a
a) a + a * a
b) (a + a) * a
c) ((a))
4) Indique o tipo de cada uma das gramáticas abaixo (2 ou 3).
(
(
(
(
(
)
)
)
)
)
S → aS b
S → AAA a
S → (S) S + S
S → aA Aba
B → aB a
5) O que é uma gramática equivalente?
6) O que é uma GLC ε-livre?
7) O que é uma gramática ambígua?
8) O que é uma gramática inerentemente ambígua?
9) Seja G a seguinte GLC: G =({S}, {a,b}, {S → aSbSa ε}, S). Mostre quatro
cadeias de L(G) e a derivação de cada um delas
10) Obtenha a árvore de derivação de sentença “bbabaaabbaba” na gramática:
G = ({S, A}, {a, b}, P, S)
Onde P é
:
S → bAS | a
A → SaA | SS | ab
11) Construa uma gramática G tal que
a) L(G) = { an bm | n ≥ 0 e m ≥ 1 }
b) L(G) = { ai bj ci | i ≥ 0 e j ≥ 1 }
c) L(G) = { anb2n / n ≥ 1 }
d) L(G) = { anbmcn-1 / n ≥ 2 e m ≥ 1 }
e) L(G) = { w | w ∈ (0,1,2)+ e todos os 0´s sejam consecutivos}
f) L(G) = { anbncn | n ≥ 0 }
g) L(G) = { w | w ∈ (0,1,2)+ e todo 0 vem seguido de um 1 }
h) L(G) = { w | w ∈ (a,b)+ e w tem no máximo um par de a como
subpalavra e no máximo um par de b como subpalavra }
i) L(G) = { w | w ∈ (0,1,2)+ e w não possui 010 como subpalavra }
j) L(G) = { w | w ∈ (a,b,c)+ e w possui baa como subpalavra }
12) Construa uma gramática que gere L(G) = { w | w ∈ (a,b,c)+ e w é
palíndromo}. Obs: Um palíndromo é uma palavra/sentença que pode ser
lida tanto da esquerda para a direita, quanto da direita para a esquerda da
mesma forma. Exemplos: abba, bcabacb, abbbba, cacac
Simplificação da Gramática
1) Transformar as gramáticas abaixo para uma GLC ε-livre.
a) G = ({S, D, C}, {b,c,d,e}, P, S )
Onde P é:
S→bDCe
D→dD|ε
C→cC|ε
b) G = ({S}, {a}, P, S)
Onde P é:
S→aS|ε
2) Retirar as produções simples da gramática
a) G = ({S, A, B}, {a,b,c}, P, S )
Onde P é:
S→aSb|A
A→aA|B
B→bBc|bc
3) Fatorar as gramáticas abaixo
a) G = ( {S, A}, {a,b}, P, S )
Onde P é:
S→Ab|ab|baA
A→aab|b
b) G = ({S, A}, {a, b}, P, S)
Onde P é:
S→ bAS a
A→ SaA SS ab
c) G = ({S, A, B, C}, {a, b}, P, S)
Onde P é:
S→ AB
A→ aBc a
B→ bSa b
d) G = ({S, A, B, C}, {a, b, c}, P, S)
Onde P é:
S→ aA aB C
A→ CA a
B→ bB bC
C→ aC c
4) Eliminar símbolos inúteis, produções simples, recursão à esquerda e fatorar a
gramática:
G = ({S, A, B, C}, {a, b, c}, P, S)
Onde P é:
S → aBa | A
A → aA | a | B | Sa
B → bB | b | C
C → cC | abC
5) Considerando a GLC a seguir:
G = ({S, A, B, C}, {a, b}, P, S)
Onde P é:
S → A | B | AB
A → aB | bS | b
B → bB | Ba | C
C → AS | AB | b
a) Eliminar símbolos inúteis.
b) Eliminar produções simples da gramática obtida no item anterior.
c) Eliminar recursão à esquerda da gramática do item b.
d) Fatorar a gramática obtida no item c.
6) Fatorar a gramática:
G = ({S, A, B, C}, {a, b, c}, P, S)
Onde P é:
S → aA | aB | C
A → CA | a
B → bB | bC
C → aC | c
Forma Normal de Chomsky (CNF)
1) Ponha as gramáticas abaixo na CNF
a) G = ({S, A, B}, {a, b}, P, S)
P: S
ASA aB
A
B S
B
b
2) Colocar a GLC na FNG:
G = ({S, A, B}, {a, b, c}, P, S)
P: S → AB
A → aBc | a
B → bSa | b
b) G = ({S, A, B}, {a, b, c}, P, S)
P: S
AB
A
aBc a
B
bSa b