Buscar

Linguagens formais e automatos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

EXERCÍCIOS
UNIT1
1.
Os autômatos, ou máquinas de estados, são abstrações matemáticas para representar
modelos computacionais. Esses modelos computacionais possibilitam a idealização de
computadores, podendo representar linguagens complexas, tais como as recursivas e
recursivamente enumeráveis às simples linguagens regulares. Um dos tipos de
autômatos usados para reconhecer a linguagem regular é o AFD, marcado fortemente por
seu determinismo.
 Assinale a alternativa correta acerca do significado de determinismo usado pelo AFD.
É a capacidade que um autômato finito tem de gerar um único ramo de computação para cada
cadeia de entrada fornecida. Esse autômato pode ser expressado por meio da quíntupla da
formalização.
O determinismo usado no AFD é a capacidade de gerar um único ramo de computação
para cada cadeia fornecida na entrada. É importante salientar que esse autômato é
definido a partir de uma 5-upla da sua formalização. Em um AFD, todos os símbolos do
alfabeto devem ser consumidos obrigatoriamente pela função de transição, podendo
chegar a vários estados de aceitação a partir do único estado inicial permitido no AFD.
Em outras palavras, no AFD podem existir de 1 a N estados finais e necessariamente
apenas 1 estado inicial. É interessante frisar que não existe símbolo espontâneo sendo
determinante no estado de aceitação ou em qualquer outra transição; caso tivesse
transição com o símbolo épsilon, incorreria na aparição do não determinismo do
autômato. No tocante à computação realizada via função programa em um autômato
finito, não há limitação de estados utilizados, mas a quantidade de estados varia em
virtude do autômato utilizado, podendo ter muitos estados, entre estes diversos estados
de aceitação e somente um estado inicial.
2.
O diagrama de estados usado no AFD é um recurso gráfico muito expressivo para
representar muitas máquinas, entre elas as máquinas de estados finitas. Com esse
diagrama, é possível estabelecer a transição de um estado para outro por meio do
consumo dos símbolos disponíveis no alfabeto em questão. A seguir, são informados
detalhes sobre um diagrama de estados:
 Q = {q0, q1, q2, q3, q4, q5},
Σ = {0, 1},
Função programa = {
δ(q0, 0) = q5, δ(q0, 1) = q1,
δ(q1, 0) = q2, δ(q1, 1) = q5,
δ(q2, 0) = q5, δ(q2, 1) = q3,
δ(q3, 0) = q4, δ(q3, 1) = q5,
δ(q4, 0) = q4, δ(q4, 1) = q4,
δ(q5, 0) = q0, δ(q5, 1) = q0
}
q0 é q0.
F = { q0, q4}
De acordo com as informações, indique qual diagrama corresponde às especificações
descritas.
3. O diagrama de estados usado no AFD é um recurso gráfico muito expressivo para
representar muitas máquinas, entre elas as máquinas de estados finitas. Com esse
diagrama, é possível estabelecer a transição de um estado para outro por meio do
consumo de todos os símbolos disponíveis no alfabeto usado em determinada
linguagem. A seguir, é esboçado o diagrama 2. Determine a linguagem L(M2) aceita pelo
AFD M2 representado no diagrama
L(M2) = {w ∈ (0, 1)* | w é formada por uma cadeia que deve ter uma sequência mínima de
cinco 1s consecutivos}.
Observe alguns exemplos de cadeias aceitas que foram geradas por esse diagrama:
11111, 011111, 0111110, 00111110, 0111111100, e assim por diante. Observe que todas
essas cadeias têm no mínimo cinco 1s seguidos, independentemente de serem
antecedidos ou sucedidos de cadeias alternadas de 0s e 1s. Logo, é correto afirmar que
w é formada por uma cadeia que deve ter uma sequência mínima de cinco 1s
consecutivos, não tendo aparições de 0s entre esses cinco 1s. A cadeia final
processada por esse AFD é aceita independentemente de o comprimento ser ímpar ou
par, mas que tenha os cinco 1s seguidos, embora a menor cadeia aceita seja a 11111,
tendo comprimento ímpar. 
4. A formalização do autômato finito deteminístico (AFD) fornece a precisão e a notação
para representar esse tipo de modelo computacional (AFD). No AFD, sua formalização
pode ser expressada por meio da 5-upla (Q, Σ, δ, q0, F). A seguir, é esboçado o diagrama
que reconhece a linguagem L(M3).
Leia as afirmativas a seguir a respeito dos componentes da formalização do AFD:
I. Esse AFD tem Q = {q0, q1, q2, q3, q4}, F = {q1, q3} e Σ = {p, a, i}.
II. Esse AFD tem Q = {q0, q1, q2, q3, q4}, F = {q3}, δ(q0, a) = q0.
III. Esse AFD tem Q = {q0, q1, q2, q3, q4}, F = {q3}, Σ = {p, i}, q0 = q1.
IV. Esse AFD tem Q = {q0, q1}, F = {q2} e Σ = {p, a, i}, δ(q2, a) = q2, δ(q2, p) = q2.
V. Esse AFD tem Q = {q0, q1, q2, q3, q4}, Σ = {p, a, i}, δ(q0, i) = q0.
Assinale a alternativa que contém as assertivas corretas:
II e V.
Observe que a resolução desse algoritmo fica em torno do preenchimento da 5-upla (Q,
δ, δ, q0, F); portanto, vamos informar a valoração de cada componente. Q = {q0, q1,
q2, q3, q4} δ = {p, a, i} δ: Q × δ δ Q = { δ(q0, a) = q0, δ(q0, i) = q0, δ(q0, p) = q1, δ(q1,
a) = q2, δ(q1, i) = q4, δ(q1, p) = q4, δ(q2, a) = q4, δ(q2, p) = q1, δ(q2, i) = q3, δ(q3, a) =
q3, δ(q3, p) = q3, δ(q3, i) = q3, δ(q4, a) = q4, δ(q4, p) = q1, δ(q4, i) = q4 } q0 é o q0. F =
{q3}. Logo, as alternativas que usam corretamente as atribuições da formalização do
AFD a partir do diagrama 3 são a II e a V. Note que há atribuições na 5-upla da
formalização do AFD incorretas. É importante atentar aos conjuntos dos estados totais,
finais e do alfabeto da linguagem, assim como a todas as saídas da função de
transição. Ao se referir ao AFD em questão, as informações erradas são: F = {q1, q3}, δ
= {p, i}, q0 = q1, Q = {q0, q1}, F = {q2}, δ(q2, a) = q2, δ(q2, p) = q2. 
5.
Em AFDs, pode haver muitas soluções para o mesmo problema, incluindo aquelas
soluções com muitos estados. Ao implementar um AFD, uma pergunta pertinente que se
deve fazer é se o AFD foi construído com o menor número possível de estados. Com isso,
é apropriada a utilização do algoritmo de minimização de autômatos.
Analise as afirmativas a seguir, que tratam das características do algoritmo de
minimização de autômatos, e classifique-as em verdadeiras (V) ou falsas (F):
( ) Neste algoritmo, os estados finais e os não finais são separados na primeira interação,
depois são unidos, chegando a ser indissolúveis.
( ) Os estados equivalentes são aqueles que, ao consumirem um símbolo, vão ter
comportamentos de aceitação/rejeição idênticos.
( ) O algoritmo procura uma partição, de forma que os estados não equivalentes estejam
no mesmo bloco.
( ) A minimização do autômato finito une os estados equivalentes entre si, alterando e
aperfeiçoando o funcionamento do autômato.
Assinale a alternativa que apresenta a ordem correta:
Você acertou!
B.
F, V, F, F.
Ao realizar a minimização de AFD, deve-se ter em mente que nem sempre uma única
interação pode encontrar a melhor minimização possível; logo, dependendo da
quantidade de estados do autômato, muitas interações vão acontecer, não sendo esse
conjunto de estados (aceitação e não aceitação) indissolúvel somente na primeira
interação, a não ser que haja apenas uma interação na minimização. Em cada
interação, os estados de aceitação e não aceitação são separados em uma partição Z0
= {F, Q – F} e, ao final da interação, são unidos, repetindo esse processo em toda a
interação.
Ao estabelecer a equivalência entre os estados X e X’, por definição, se dois estados X
e X’ têm equivalência, então o resultado final (aceitação ou rejeição) do processamento
de qualquer cadeia w δ δ* deve ser igual se iniciado a partir de X ou a partir de X. Isso
incorre que X e X’ vão se comportar de forma idêntica. A minimização de AFD diminui a
quantidade de estados, não alterando o funcionando do AFD, porém o torna menor no
tocante à quantidade de estados usados inicialmente.
1.
Uma cadeia de entrada a1a2 ...an é aceita/reconhecida por um AFND se existe AO MENOS
UMA sequência de transições que leva do estado inicial para algum estado final.
Nesse contexto, sobre os AFND, assinale a alternativa correta.
Você acertou!
B.
Um AFND tem uma cadeia aceita se, pelo menos, um estado final é atingido ao final do
processamento, lembrando que o autômato pode ter mais de um estado final.O AFND (ou AFN) pode ter mais de um estado final, e sua aceitação pode ser feita se
pelo menos um deles for atingido. Além disso, pode realizar mais de uma transição para
o mesmo símbolo de entrada, não se limitando apenas a determinada transição.
O poder de expressão não difere, uma vez que AFDs são subconjuntos de AFNs, e a
transição vazia não impede a conversão de AFN para AFD. O funcionamento do AFN
possibilita mais de uma transição a um símbolo de entrada em um mesmo estado.
2. As tabelas AFN ajudam a ter uma visão de cada transição com base no estado atual,
símbolo de entrada e estado(s) alvo(s).
Observe o diagrama AFN a seguir:
 Assinale a alternativa que apresenta corretamente a tabela AFN correspondente ao AFN.
3. A definição formal de um AFN é composta basicamente de uma 5-upla, cuja notação
pode ser dada por:
M=(Ʃ, Q, δ,q0,F)
Em que Ʃé o alfabeto, Q o conjunto de estados, q0 o estado inicial e F o conjunto de
estados finais.
Considere o seguinte AFN, em que:
 Ʃ = (a, b);
F = {q2}.
Analise as afirmativas:
I. O AFN tem transições vazias para q2.
II. O AFN em questão aceita todas as cadeias iniciadas por a ou b.
III. O AFN em questão termina, necessariamente, com dois símbolos iguais.
IV. O AFN aceita cadeias de, no mínimo, dois caracteres.
É correto o que se afirma nos itens:
Resposta correta.
B.
III e IV, apenas.
Observe que em q0 há um loop para os símbolos a e b. Pelo não determinismo, há
transição para o estado q1 (caso a) ou q3 (caso b). Partindo-se de q1, a única transição
é a partir da chegada de outro a. Partindo-se de q3, a única transição é pela chegada
de outro b. Ambas finalizam no estado q2, que não tem nenhuma transição, invalidando
o item I. Além disso, o AFN sempre deverá terminar em aa ou bb, validando o item III.
Ainda que possa aceitar qualquer quantidade de a ou b no início, a transição mínima é
aceitar pelo menos aa ou bb, validando o item IV. Porém, dada a obrigatoriedade
instituída em (III), o item II torna-se errado, pois não se aceitam todas as cadeias.
4.Os AFNs podem ser convertidos em AFDs equivalentes com base em algumas regras
de acordo com o estado atual, símbolo de entrada e próximo estado. Observe o AFN a
seguir:
 Que autômato finito determinístico aceita a mesma linguagem?
A imagem acima mostra a alternativa correta, uma vez que os dois estados de aceitação
validam as duas entradas unicamente aceitas.
Considerando d como transição, o autômato reconhece apenas duas cadeias: ba e baa.
Consequentemente, a transição d(q2, a) = q2 gera um laço infinito, ocasionando uma sequência
de qualquer tamanho com símbolo a. Apesar de aceitar a cadeia ba, não aceita baa, e sim bba,
o que faz com que não seja um AFD equivalente ao AFN da questão.
O estado de aceitação informado foi q1, o que invalida a aceitação fornecida pelo AFN de
origem; além disso, foi provado, com a construção do AFD, que não é impossível sua geração.
5. A notação formal relacionada a um AFN tem por objetivo, além de sua devida
formalização, instruir sobre características e estado da computação atual do autômato.
Considere que determinada computação de um AFN esteja na seguinte situação para a
entrada 011:
Com base nessa tabela, pode-se afirmar que:
Resposta correta.
B.
A computação está no estado q0 e q1 em "paralelo", avaliando o símbolo 0 .
Na tabela é possível perceber que a computação ainda não foi completa, uma vez que
ainda existe um símbolo 0 a ser analisado. Além disso, observe que, na penúltima e
última linhas, ao ser lido 1 no estado q0, o autômato pode ir tanto para q1 como
permanecer em q0. Ao mesmo tempo, por ter os dois estados e um símbolo 0 na
entrada, ocorrerá a computação "em paralelo" para os dois casos. Para finalizar, em
nenhum momento é exibida alguma transição a partir de q1, e a transição irá depender
da entrada (0 ou 1).
1.
Pode-se afirmar que a propriedade de fecho consiste em um conjunto de operações sobre
as linguagens regulares que produzem uma nova linguagem também regular. Essas
operações têm como intuito possibilitar a união, a interseção, a concatenação, entre
outras operações sobre as linguagens regulares.
Visto isso, considere as operações de união e concatenação. Assim, dadas as linguagens
L1 = {a, aaa, b}, L2 = {bb, c} e L3 = {aa, cc, d} sobre o ∑ = {a, b, c, d}, informe qual é a
linguagem obtida por L4 = ( L1∪ L2).L3 .
Resposta correta.
B.
L4 = {aaa, acc, ad, aaaaa, aaacc, aaad, baa, bcc, bd, bbaa, bbcc, bbd, caa, ccc, cd}.
Considere L4 = ( L 1∪ L 2). L 3.
Em um primeiro momento, obtém-se o resultado de ( L 1 ∪ L 2) e, posteriormente,
concatena-se a L 3. Assim, tem-se:
L4 = {a, aaa, b, bb, c}.{aa, cc, d}
Por fim, deve-se concatenar o resultado da união de L 1 e L 2.
Nesse sentindo, a resposta é dada por:
L4 = {aaa, acc, ad, aaaaa, aaacc, aaad, baa, bcc, bd, bbaa, bbcc, bbd, caa, ccc, cd}
Perceba que, em nenhuma das linguagens, há o operador ε. Assim, este não aparecerá
como parte da nova linguagem.
2. Semelhante ao uso nas linguagens regulares, também é possível utilizar operadores
diretamente nos símbolos, pois, dada uma Linguagem L = {a}, se pode representá-la
simplesmente por a. Desse modo, ao inserir o operador estrela, sobre a, por exemplo,
teremos como resultado {ε, a, aa, aaa,...}.
Tendo em vista o exposto, dadas as linguagens a seguir, marque a opção que representa
uma linguagem que produz uma cadeia que começa e termina com o mesmo símbolo,
considerando que ∑={a,b}:
Resposta correta.
D.
(a ∑* a)∪ (b ∑* b)∪ a∪ b.
A questão solicita uma linguagem que inicia e termina com o mesmo símbolo. Desse
modo, considerando ∑={a,b}, tem-se ( a ∑* a), no qual uma cadeia deve ser iniciada e
terminada com o símbolo a e ∑* representa qualquer símbolo do alfabeto, inclusive ε.
Seguindo o mesmo estilo, teremos (b ∑* b), no qual a cadeia deverá iniciar e terminar
com o símbolo b.
Por fim, deve-se considerar também a leitura dos símbolos a e b, em que terminam e
começam com o mesmo símbolo. Assim, temos:
(a ∑* a)∪ (b ∑* b)∪ a∪ b
3. As operações de fechamento, ou operações de fecho, sob linguagens regulares,
podem ser definidas como aquelas que, quando aplicadas a elas, produzem uma nova
linguagem também regular.
Considere as informações a seguir:
Dada uma linguagem regular L = {00, 01, 11, 011} sob ∑ = {0, 1}.
Analise as cadeias a seguir e informe quais fazem parte da linguagem L*:
1- 00011100011
2- 00111010000
3- 11010001111
4- 01101000100
5- 11011110111
Resposta correta.
E.
Fazem parte de L* as opções 1, 3, 4 e 5.
Considerando a linguagem regular como L = {00, 01, 11, 011}, tem-se que:
1- 00011100011 = 00 01 11 00 011
2- 00111010000 = 00 11 e regra quebrada em 1010000.
3- 11010001111 = 11 01 00 011 11
4- 01101000100 = 011 01 00 01 00
5- 11011110111 = 11 011 11 01 e 11
Portanto, estão corretas apenas as opções 1, 3, 4 e 5.
4.
Determinada linguagem regular L é formada por um conjunto de símbolos pertencentes a
um alfabeto ∑. A partir dessa linguagem L, é possível obter um conjunto de cadeias que
possibilitam elaborar um modelo computacional a ser aplicado em diversas situações,
como, por exemplo, buscar determinados caracteres em um texto, fazer uma busca por
meio de motores de buscas da web, entre outras.
Considerando as linguagens apresentadas a seguir, relacione a primeira com a segunda
coluna, verificando se cada cadeia obtida na segunda coluna pertence à da primeira.
Posteriormente, marque o item que representa a ordem correta das linguagens
reconhecidas.
Considere ∑={1,0}.
Primeira coluna:
L1 = 1*∪ 0*
L2 = 1 (01)* 0
L3 = ∑*1∑*0∑*1∑*
L4 = (ε∪ 1) 0*
Segunda coluna:
( ) 0, 10, 100
( ) 10, 1010, 101010
( ) ε, 11, 00
( ) 101, 11011, 101111
A ordem correta obtida na segunda coluna é:
Resposta correta.
D.
L4, L2, L1, L3.
Nesta resolução, deve-se verificar cada cadeia do item e a qual linguagem ela pertence.
Veja:
( ) 0, 10, 100
Ao analisar as linguagens, a primeira cadeia, 0, poderá fazer parte de L1 ou L4. Assim,
deve-se analisar o valor seguinte.
10 - pode pertencer à linguagem L1, L2 ou L4.Desse modo, passa-se para o passo
seguinte.
100 - este valor também pode pertencer a L1 ou L4. Dessa forma, considera-se que é
possível ter L1 ou L4 para essa opção.
( ) 10, 1010, 101010
10 - como visto, pode pertencer a L1, L2 ou L4.
1010 - esta cadeia é aceita por L2 e L3.
101010 - esta cadeia também é aceita por L2 e L3.
Desse modo, neste item, é possível afirmar que tem valor L2.
( ) ε, 11, 00
ε, apenas L1 e L4 aceitam ε como parte da linguagem.
11 - apenas L1 aceita esta cadeia.
00 - apenas L1 e L4 aceitam esta cadeia.
Isto é, neste item, tem-se a linguagem L1.
( ) 101, 11011, 101111
101 - esta cadeia é aceita apenas por L3.
11011 - esta cadeia é aceita por L3.
101111 - esta cadeia é aceita apenas por L3.
Desse modo, tem-se L4, L2, L1 e L3 como alternativa correta.
5.
Verificar se uma linguagem é regular é fundamental, pois, em caso positivo, será possível
solucionar determinado problema de forma simples e com tempo de execução ótimo.
Existem algumas maneiras de verificar se uma linguagem é regular. Um exemplo é por
meio do uso de AFDs. Por outro lado, há a possibilidade de verificar se dada linguagem é
não regular. Para isso, uma das formas mais utilizadas é o lema do bombeamento.
Com base Σ = {a, b}, analise as linguagens a seguir e marque a opção referente a uma
linguagem não regular.
Você acertou!
E.
L5 = {w | w possui um número de a's igual ao número de b's} .
Para a resolução desta questão, inicia-se pela forma mais simples, ou seja, por meio da
tentativa da elaboração de um autômato finito que represente as linguagens
Quanto à linguagem L5, houve certa dificuldade em elaborar um autômato que a represente.
Isso nos leva a ter indícios de que L5 não é uma linguagem regular. Desse modo, prova-se por
meio do lema do bombeamento.
Assumimos que L5 é uma linguagem regular.
Desse modo, determinada cadeia w pode ser dividida em xyz.
No qual y ≠ ε;
|xy| <= p e
xyiz∈ L5 para todo i >= 0
Considera-se a cadeia aaabbb e dividirmos em x = a, y = aa e z = bbb; ao bombear y, teremos
uma cadeia como, por exemplo, aaaaabbb, o que torna a quantidade de a's diferente da
quantidade de b's, tornando a linguagem não regular. 
1.
Determinada empresa Z pretende criar os e-mails institucionais de seus funcionários.
Para isso, ela visa a fazer uso de expressões regulares. Assim, considerando uma cadeia
qualquer w, faz-se necessário elaborar e-mails do tipo w@empresaZ.com, de forma que
|w| tem tamanho mínimo igual a 1 e máximo igual a 4.
Tendo em conta um alfabeto Σ = {a, b}, um funcionário da empresa elaborou, então, uma
expressão regular da seguinte forma
(a + b)(ε + a + b)(ε + a + b)(ε + a + b). Tendo em vista o alfabeto,
 a expressão e as orientações dadas, informe quantas possibilidades existem para criação
de e-mails.
Resposta correta.
C.
30.
A partir da expressão (a + b)(ε + a + b)(ε + a + b)(ε + a + b), considerando 2 símbolos
do alfabeto e, respectivamente, cadeias de tamanho 4, 3, 2 e 1, tem-se que:
24 + 23 + 22 + 21 = 30
Desse modo, é possível obter as seguintes cadeias: {a, b, aa, bb, ab, ba, aaa, aab, abb,
aba, bbb, baa, bab, bba, aaaa, aaab, aabb, aaba, abbb, abab, abaa, abba, bbbb, bbba,
bbaa, bbab, baaa, baba, babb, baab}.
2.
Existem diversas maneiras de representar determinada linguagem regular, seja por
autômatos finitos, seja por expressões regulares. Ao optar pela segunda, ainda assim, há
diversas possibilidades capazes de originar uma mesma linguagem.
Tendo em vista o informado e o alfabeto Σ = {0,1}, considere a expressão 0 * (100) * (0 *
(100) *) * e informe qual das opções a seguir produz o mesmo conjunto de cadeias:
Resposta correta.
E.
(0 + 100)*
Considerando 0 * (100) * (0 * (100) *) *, é possível perceber que a expressão
basicamente consiste em operações de concatenação e fechamento.
É possível alterar a expressão dada por.
(0 * (100) *) + (0 * (100) *) *.
Ao analisar a expressão alterada, pode-se perceber que (0 * (100) *) e (0 * (100) *) *
produzem as mesmas cadeias; assim, é possível excluir uma das extremidades.
Ao escolher (0 * (100) *) *, resta (0 * (100) *), que pode ser transformada em (0 +100) *,
produzindo, ainda assim, o mesmo conjunto de cadeias.
3. As linguagens regulares podem ser denotadas por autômatos finitos ou expressões
regulares. No primeiro caso, ou seja, com relação aos autômatos finitos, podem ser
representadas por um conjunto de estados, um conjunto finito de símbolos, o qual
chamamos de alfabeto, uma função de transição, um estado inicial e, por fim, apenas um
ou um conjunto de estados finais. No segundo caso, as expressões regulares costumam
ser representadas por um conjunto de símbolos de um alfabeto, símbolos que
representam operações (concatenação, fecho estrela e união) e por parênteses, com o
intuito de definir uma precedência.
Há casos em que a representação de uma linguagem regular a partir de um autômato
finito se torna a melhor opção, pois, de acordo com o problema, ela apresenta um formato
de interpretação mais simples. No entanto, há momentos em que a expressão regular se
torna indispensável. Desse modo, é possível converter um autômato finito em uma
expressão regular.
Tendo em vista o apresentado, analise o autômato a seguir e informe quais expressões
regulares poderão denotar a mesma linguagem:
 Considere:
I. (ab*a+ba*b)a*baa +(ab*a+ba*b)a*bbb
II. (a+b)(b+a)*(a+b)a*b(a+b)(a+b)
III. (ab*a + ba*b)a*b(aa + bb)
IV. (ab*a)+(ba*+b)*ab(aa)+(bb)
Entre as opções, estão corretas apenas:
Resposta correta.
B.
I e III.
Considerando o estado inicial do autômato, ao efetuar a leitura e ir para o estado q1 e,
posteriormente, q5, tem-se que: ab*a.
Em outro sentido, ao optar o caminho do estado q0 para q4 e, posteriormente, q5,
temos que b*ab. Desse modo, obtém-se a primeira parte da expressão regular:
(ab*a + ba*b).
Dando sequência, no estado q5, temos a leitura de qualquer quantidade de a; assim, a*
e, indo para q2, uma leitura obrigatória de b. Desse modo:
(ab*a + ba*b)a*b.
Nesse ponto, ao chegar a q2, há duas possibilidades. Seguir para o caminho q3 e
posteriormente finalizar em q8, ou seguir a leitura para q6 e finalizar em q8. Desse
modo, pode-se representar da seguinte maneira:
(ab*a + ba*b)a*baa + (ab*a + ba*b)a*bbb
ou
 (ab*a + ba*b)a*b(aa + bb).
4.
As expressões regulares são uma maneira formal de descrever linguagens regulares a
partir de conjuntos de símbolos e/ou caracteres especiais que formam determinada regra
a partir de operadores de concatenação, união e fecho estrela.
Dado o exposto, considerando um alfabeto Σ = {a, b} e uma linguagem L = {w∈ Σ |(anbm)
na qual n > 1 e m ≤ 1}, marque a alternativa que representa o complemento da linguagem
dada por meio de uma expressão regular.
Resposta correta.
E.
(a + ε)bbb*.
O complemento é uma operação de fechamento sob linguagens regulares. Desse
modo, quando aplicada a uma linguagem regular, essa expressão produz uma nova
linguagem regular.
Considerando n > 1 e m ≤ 1, o complemento são todos os valores que não
correspondem a estes, ou seja n ≤ 1 e m > 1; assim, ao considerar a expressão anbm,
temos inicialmente uma quantidade de a’s de no máximo 1 e uma quantidade de b’s de
no mínimo 2.
A partir do exposto, tem-se que:
Para aa* + (b + ε), pode-se fazer uso da cadeia aaaaa, o que quebra a regra de n ≤ 1 e
m > 1.
Para (a + ε)*(b + ε), pode-se fazer uso da cadeia aaab, o que também quebra a regra n
≤ 1 e m > 1.
Em (a*)bbb*, pode-se dispor de qualquer quantidade de a e, no mínimo, duas
quantidades de b, o que também quebra a regra dada.
Na expressão regular (a + aa + aaa + ε)* b*, pode-se fazer uso da cadeia bbbb, que
também não corresponde à regra informada.
Por fim,
Para (a + ε)bbb*
(a+ε), representa a leitura de apenas um ou nenhum a, ou seja, n ≤ 1 e bbb* torna
obrigatória a leitura de ao menos dois b’s, isto é, m > 1.
Desse modo, a opção correta é (a + ε)bbb*.
5.
As expressões regulares são utilizadas para denotar linguagens regulares. A partir delas,
é possível fazer uso de operações de maneira bastante simples esucinta. Quando
utilizadas em linguagens de programação, normalmente são aplicadas com o intuito de
verificar, por meio de determinada regra, se um conjunto de símbolos pertence a
determinado padrão. Desse modo, pode-se inferir que estas podem ser utilizadas para
verificar se determinada entrada corresponde a um padrão válido, como um e-mail.
Dado o exposto, considerando um alfabeto Σ = {a, b} e uma expressão regular (a + b) * a
(a + b) * a (a + b) *, marque a alternativa que melhor representa a expressão apresentada.
Resposta correta.
D.
O conjunto de todas as cadeias contendo pelo menos dois a’s.
Quanto às opções, tem-se:
Conjunto de todas as cadeias que têm ao menos um b — perceba que é possível a
elaboração da cadeia babab deste, o que torna essa afirmativa incorreta.
O conjunto de todas as cadeias contendo a subcadeia aa — realmente há a
possibilidade de formar cadeias de modo a existir a subcadeia aa; no entanto, tal qual
citado anteriormente, a cadeia babab faz parte da linguagem, o que torna essa opção
incorreta.
O conjunto de todas as cadeias contendo no máximo dois a’s — a partir da expressão
dada, é possível obter a cadeia aaaa, o que a torna incorreta.
O conjunto de todas as cadeias contendo pelo menos dois a’s — de fato, a expressão
torna obrigatória a leitura de pelo menos dois a’s: perceba em (a + b) * a (a + b) * a (a +
b) *.
O conjunto de todas as cadeias que começam e terminam com a ou b — perceba que,
a partir do momento que existe a obrigatoriedade do uso de no mínimo dois a’s, essa
afirmativa já se torna falsa, pois não é possível gerar a cadeia ab, por exemplo.
UNIT2
1.
Uma gramática é dita regular se ela é uma gramática linear à direita (GLD), gramática
linear à esquerda (GLE), gramática linear unitária à direita (GLUD) ou gramática linear
unitária à esquerda (GLUE). Desse modo, ao reconhecer uma gramática como alguma das
citadas, logo ela será uma gramática regular e, portanto, representará uma linguagem
regular.
Quanto às gramáticas citadas, elas são equivalentes. Desse modo, apesar de o formato
de produção entre elas ser diferente, ainda assim produzem a mesma linguagem. Um
exemplo de gramática linear é apresentado a seguir.
S → Aa | Bb
A → Bb | Cc
B → a | Bc
C → b
Dito isso, considere a gramática linear unitária à esquerda (GLUE) apresentada e marque
a alternativa que representa a expressão regular equivalente.
Você acertou!
A.
ac*b + ac*ba + bca.
Como forma de provar qual a alternativa correta, faça as comparações com as palavras
produzidas pela gramática com as palavras produzidas pela expressão regular.
A alternativa ac*b + ac*ba + bca será analisada a seguir.
Tem-se como expressão regular ac*b + ac*ba + bca.
Assim, é possível dividi-la em: ac*b, ac*ba e bca.
Em ac*b, escolha a palavra acb e veja o processo de derivação a seguir:
S⇒ Bb
B⇒ Bcb
B⇒ acb
Para ac*ba, escolha a palavra acba:
S⇒ Aa
A⇒ Bba
B⇒ Bcba
B⇒ acba
Em bca, tem-se:
S⇒ Aa
A⇒ Cca
C⇒ bca
Portanto, essa alternativa está correta.
Na alternativa acb + ac*ab + bca, conforme visto, acb é aceita. Desse modo, veja para a
produção acab:
S⇒ Bb
B⇒ ab
Note que o processo é encerrado aqui. Portanto, essa alternativa está incorreta.
Na alternativa ac*b + acbac + bca, conforme visto, acb é aceita. Portanto, será avaliada
a produção de acbac.
Note que S não produz o símbolo c. Dessa forma, essa alternativa está incorreta.
Na alternativa acab + acc*b + bca, veja a produção da palavra acab:
S⇒ Bb
B⇒ ab
Portanto, essa alternativa está incorreta.
Na alternativa acb + ab*ab + bca, conforme visto, acb é aceita. Assim, será verificada a
produção de abab:
S⇒ Bb
B⇒ ab
Dessa forma, essa alternativa está incorreta.
2.
Conforme Ricarte (2008), as gramáticas regulares, embora tenham poder de expressão
mais limitado, são também utilizadas para a representação de alguns aspectos
importantes nas linguagens de programação, considerando, por exemplo, os
identificadores, utilizados para representar nome de variáveis ou funções. Para que eles
sejam válidos, é importante inserir regras, como os identificadores que devem iniciar com
uma letra para que posteriormente possam ter letras ou dígitos, entre outras restrições
dadas.
Dito isso, analise a gramática a seguir, as suas regras/restrições e, posteriormente,
marque a alternativa que representa a linguagem gerada por ela.
S -> 0S | 1S | 0A
A -> ε
Você acertou!
E.
L = {w∈ {0, 1} * | w termina com 0}.
Para verificar a alternativa correta, é necessário analisar o que cada linguagem
apresentada produz. Desse modo, será analisado cada item da questão.
L = {w∈ {0, 1} * | w tem a mesma quantidade de 0's e 1's}
A linguagem apresentada nessa alternativa possibilita obter diversas quantidades de 0’s
ou 1’s, inclusive nenhuma, mas que essa quantidade de símbolos seja idêntica entre
eles, o que não condiz com a gramática apresentada, pois por meio da gramática dada
é possível produzir palavras como 010, que tem uma quantidade diferente de 0’s em
comparação à quantidade de 1’s. Portanto, essa alternativa está incorreta.
L = {w∈ {0, 1} *}
Essa alternativa apresenta uma linguagem que produz qualquer quantidade de 0’s e 1’s
e em qualquer ordem. Desse modo, a palavra 0101 não é gerada pela gramática, o que
torna essa alternativa incorreta.
L = {0n 1m | n, m ≥ 0}
Nessa alternativa, é possível produzir palavras como {ε, 0, 1, 00, 01, 001, ...}. Note que
se a palavra obtiver ao menos um 0 e um 1, o primeiro deverá anteceder ao segundo,
isto é, os 0’s deverão vir antes dos 1’s, o que não é uma regra existente na gramática
apresentada e, portanto, torna essa alternativa incorreta.
L = {0n | n ≥ 0}∪ {1n | n ≥ 0}∪ {0n 1n | n ≥ 0}
A linguagem apresentada nessa alternativa produz diversas quantidades de 0’s unida à
linguagem que produz diversas quantidades de 1’s unidas à linguagem na qual produz
diversas quantidades de 0’s e 1’s, nessa ordem e com a mesma quantidade. Para
provar que a alternativa é incorreta, escolheremos a cadeia 01, que faz parte da
linguagem fornecida, mas que não faz parte da gramática apresentada.
L = {w∈ {0, 1} * | w termina com 0}
Nessa alternativa, é possível obter diversas quantidades de 0’s e 1’s, mas, como regra,
apenas as palavras que terminam em 0. Portanto, essa é a alternativa correta.
3. Conforme Anderson (2006), um autômato, como o exemplo a seguir, é um dispositivo
que reconhece ou aceita certos elementos de um alfabeto finito (Σ) e, desse modo, os
elementos aceitos por ele são um subconjunto de Σ*, isto é, ele possibilita a leitura de
palavras de uma determinada linguagem.
De forma semelhante, as gramáticas, a partir de um conjunto de regras, quando aplicadas
de forma sucessiva, têm o poder de gerar palavras e estas últimas formam uma
linguagem.
Considerando que os autômatos finitos e que as gramáticas regulares denotam
linguagens regulares, portanto são equivalentes, marque a alternativa que produz uma
gramática equivalente ao autômato finito apresentado anteriormente.
Você acertou!
A.
S → 0A | 1B
A → 0D | 1A
B → 0B | 1C
C → 1
D → 0
Para obter a resposta correta, veja a análise de cada uma das gramáticas
apresentadas.
S → 0A | 1B
A → 0D | 1A
B → 0B | 1C
C → 1
D → 0
Inicialmente, tem-se a produção um dos dois símbolos, 0 ou 1. Considerando a escolha
de 0, deve-se partir para a variável A, a qual tem nenhuma ou diversas produções do
símbolo 1 ou 0, sendo que, neste último caso, deve-se partir para a variável D,
produzindo 0 e encerrando o processo. Considerando a escolha de 1, poderão ser
produzidas diversas quantidades de 0's, inclusive nenhuma, ou produzir o valor 1 e,
então, partir para a variável C, produzindo novamente 1 e encerrando o processo.
Portanto, essa alternativa está correta.
S → 0A | 1B
A → 0A | 1A
B → 0B | 1B
C → 1
D → 0
De forma semelhante à alternativa anterior, há a produção de um dos dois símbolos 0
ou 1. Ao optar pela produção do símbolo 0, deve-se partir para a variável A, que poderá
produzir 0 ou 1 e permanecerá nessa variável.
Portanto, essa alternativa está incorreta.
S → 0A | 1B
A → 1A
B → 0B | 1C
C → 1D
D → 0E
E→ε
Ao optar pela produção de 0, deve-se partir para a variável A, que produzirá diversas
quantidades de 1's, inclusive nenhuma e, nesse caso, não haverá a possibilidade de
continuar a produção de outro símbolo.
Portanto, essa alternativa está incorreta.
S → εA
A → 0B | 1C
B → 1B |0D
C → 0C | 0E
D → 0
E → 1
O estado inicial proporcionará uma produção vazia ε e partirá para a variável A. Nesta,
pode-se produzir o símbolo 0 ou 1. Ao produzir 0, deve-se partir para B, que poderá
produzir diversas quantidades de 1's ou 0; partindo para D, em D produzirá 0 —
portanto, aceita até esse momento. Ao iniciar o processo produzindo 1, deve-se partir
para C, que poderá produzir diversas vezes o valor 0, sendo no mínimo uma vez, o que
torna a alternativa incorreta.
S → 0A | 1B
A → 0D | 1A
B → 0B | 1C
C → 1
D → 1
Tem-se a produção de 0 ou 1. Ao escolher 0, deve-se partir para A. Em A, pode-se
produzir diversas quantidades de 1 ou produzir 0 e partir para D. Em D, é produzido o
símbolo 1, o que torna a alternativa incorreta.
4.
As gramáticas regulares têm o poder de denotar linguagens regulares. Desse modo, tais
gramáticas têm as mesmas restrições e simplicidades dessas linguagens.
Pode-se afirmar que uma gramática regular é uma quádrupla no formato G = (V, T, P ,S).
Nesse sentido, V representa o conjunto de variáveis, T os símbolos terminais, P as regras
de produção e S o símbolo inicial.
Analisando as regras de produção, considere a gramática regular a seguir.
S → bA
A → aB | bS | ε
B → aA
Tendo em vista a gramática apresentada, derive as palavras a seguir e marque a
alternativa que representa apenas as palavras que são geradas pela gramática regular
ilustrada anteriormente.
I. baabbaa
II. bbbabab
III. bbbbabb
IV. baabbba
V. bbbaabb
Com base nas palavras derivadas, é correto afirmar que estão corretas as afirmativas:
Resposta correta.
C.
I e V, apenas.
Para verificar quais são as palavras que pertencem à linguagem denotada pela
gramática dada, é preciso efetuar o processo de derivação em cada uma delas.
I. baabbaa
S⇒bA
A⇒baB
B⇒baaA
A⇒baabS
S⇒baabbA
A⇒baabbaB
B⇒baabbaaA
A⇒baabbaa
Portanto, é gerada pela gramática.
II. bbbabab
S⇒bA
A⇒bbS
S⇒bbbA
A⇒bbbaB
No entanto, B não gera a leitura do símbolo a, logo essa palavra não é gerada.
III. bbbbabb
S⇒bA
A⇒bbS
S⇒bbbA
A⇒bbbbS
No entanto, S não gera o símbolo a, logo essa palavra não é gerada.
IV. baabbba
S⇒bA
A⇒baB
B⇒baaA
A⇒baabS
S⇒baabbA
A⇒baabbbS
No entanto, S não gera o símbolo a, logo essa palavra não é gerada.
V. bbbaabb
S⇒bA
A⇒bbS
S⇒bbbA
A⇒bbbaB
B⇒bbbaaA
A⇒bbbaabS
S⇒bbbaabbA
A⇒bbbaabb
Portanto, é gerada pela gramática.
Conforme apresentado, as afirmativas corretas são I e V.
5.
Conforme Kandar (2013), o tipo 3 de gramática é chamado de "gramática regular" e tem
todas as produções dada pela seguinte forma:
A →a ou A →aB, em que A, B são variáveis e a é um símbolo terminal.
Considerando o exporto e de acordo com a hierarquia de Chomsky (1956), o tipo 3
compreende as linguagens regulares. Sendo assim, as gramáticas regulares
compreendem as produções dessas linguagens.
Veja a seguir um exemplo de uma gramática regular.
S → aA | bB
A → aC | a
B → bD | b
C → aA
D → bB
 Considerando que, conforme Ricarte (2008), as expressões regulares representam uma
forma alternativa de expressar uma linguagem regular, analise a gramática regular
apresentada anteriormente e informe qual expressão regular é equivalente a ela.
Você acertou!
C.
aa(aa)*+ bb(bb)*.
Nessa questão, será provado qual alternativa está correta a partir de produções dadas
pela gramática.
Ao analisar a gramática em questão, perceba que a partir dela são produzidas palavras
como {aa, bb, aaaa, bbbb, ...} ou seja, um número par de a’s ou b’s a partir de 2.
Analisando as alternativas:
(a + b) (a + b)
Note, nessa expressão, que a palavra aaaa não é produzida. Portanto, essa alternativa
está incorreta.
(a + b) + (a + b)*
Na expressão dada, há a possibilidade de palavras como a, b, ab, aab, entre outras, o
que não faz parte das produções dadas pela gramática apresentada. Portanto, essa
alternativa está incorreta.
aa(aa)*+ bb(bb)*
Note que nessa alternativa existe um número mínimo de dois a’s ou dois b’s, sendo que
as próximas quantidades correspondem a repetições pares desses símbolos. Portanto,
essa alternativa está correta.
(a + b)*
A expressão dada nessa alternativa produz qualquer tipo de palavra sobre o alfabeto Σ=
{a,b}, o que não corresponde à gramática dada. Portanto, a alternativa está incorreta.
(a + b)(a+b)*
Nessa alternativa, há a possibilidade de palavras como a, b, abb, entre outras, o que
não corresponde à gramática dada. Portanto, a alternativa está incorreta.
1. Autômatos de pilha determinísticos (APDs) são estruturas formais de
grande importância, visto que constituem uma base para se construir
reconhecedores para muitas linguagens que ocorrem na prática.
Para uma palavra ser reconhecida, é necessário que, após os símbolos de entrada serem
lidos, pelo menos uma das condições a seguir seja satisfeita:
(1) Um estado final seja atingido.
(2) A pilha esteja vazia.
Considere o autômato de pilha determinístico a seguir:
Qual das palavras a seguir é aceita por esse APD?
Você acertou!
D.
12021.
O APD mostrado reconhece a linguagem w0wR, em que w = {1|2}*. Ou seja, ele
reconhece palavras formadas por uma sequência de zero ou mais combinações de
dígitos 1 e 2, seguida de apenas um dígito 0, seguido dos dígitos da sequência inicial
em ordem inversa (R = reverso).
As palavras 10, 1012, 12012 e 120021 não atendem a esse requisito; logo, serão
rejeitadas pelo APD.
A palavra 12021 é a única alternativa que contém uma palavra aceita por esse
autômato.
2 .Os APDs são importantes porque permitem construir reconhecedores eficientes para
uma classe de linguagens muito usada na computação. A definição de autômato de pilha
determinístico basicamente acrescenta uma pilha a um autômato finito. Para que haja
determinismo, não deverá ser possível mais de uma transição ser definida para uma
mesma configuração instantânea; em outras palavras, em um estado qualquer do APD,
qualquer que seja o próximo símbolo de entrada e qualquer que seja a situação atual da
pilha, no máximo uma transição deverá ser possível.
Considere os autômatos de pilha a seguir:
Quais deles são determinísticos?
Resposta correta.
D.
I e II.
Para os autômatos I e II, em um estado qualquer, qualquer que seja o símbolo de
entrada a ser lido e qualquer que seja a situação atual das suas pilhas, há no máximo
uma transição possível. Logo, tanto A como B são autômatos de pilha determinísticos.
No autômato III, a partir do estado 1, há duas transições possíveis para a entrada 1 e
topo de pilha epsilon: uma que mantém o estado em 1 (loop) e outra que leva para o
estado 2. O mesmo ocorre com o símbolo de entrada igual a 2. Isso torna esse
autômato de pilha não determinístico.
3. Um aluno, estudando sobre linguagens formais, decidiu construir um autômato de
pilha determinístico para reconhecer a linguagem: {0n12n | n ≥ 0}. Ele acabou construindo
o seguinte autômato:
 Entretanto, após realizar alguns testes, ele verificou que o autômato não funcionava
conforme o esperado. Qual transição deve ser substituída nesse APD para que ele passe
a reconhecer a linguagem proposta?
Resposta correta.
C.
Transição 3.
Nesse APD, sempre que for lido um valor 0 na entrada, dois símbolos X serão inseridos
na pilha. Quando os valores iguais a 1 forem lidos, apenas um símbolo X deve ser
removido da pilha. Para que a palavra seja aceita, é necessário que a pilha esteja vazia
(Z) e que o autômato se encontre no estado q2.
A transição 1 está correta. Ela é responsável por ler um valor 0 e empilhar XX. A
transição 2 também está correta, pois, ao ler um valor 1 da entrada, um X deve ser
removido da pilha, e somente valores 1 devem ser fornecidos. A transição 3, entretanto,
está incorreta, pois, em vez de remover um símbolo X, ela remove dois (XX) da pilha a
cada símbolo 1 lido. A transição 4 é válida, pois não pode ser iguala zero; logo, pode
haver zero ocorrências de zeros e uns. A transição 5 será executada quando, após
terminada a entrada de símbolos, a pilha se encontrar vazia (Z); o autômato será levado
para o estado final q2, e a palavra será reconhecida.
A única transição que precisaria ser alterada seria a transição 3.
4. Uma estudante criou um sistema para validar expressões aritméticas entre parênteses,
formadas com operadores de soma e multiplicação. Para isso, ela implementou
parcialmente o seguinte autômato de pilha:
 Quais transições devem ser inseridas nas lacunas A e B para que esse autômato funcione
corretamente?
Você acertou!
D.
A: ( , ε, X
B: + , ε, ε e *, ε, ε 
Para realizar o controle de abertura e fechamento dos parênteses, a transição A precisa
ler ( , ignorar o estado atual da pilha (ε) e empilhar o símbolo de controle X, ou seja, A: (
, ε, X.
Como se deseja trabalhar com expressões contendo somas e multiplicações, é
necessário que a transição B permita ler esses símbolos. Entretanto, a leitura de + ou *
não deve influenciar a pilha; logo, suas transições devem ser: B: + , ε, ε e *, ε, ε.
A alternativa A: ( , X, ε é incorreta, pois A remove o símbolo X em vez de inseri-lo na
pilha.
A opção A: ( , ε, ε é incorreta, pois não insere o símbolo de controle X na pilha.
A opção B: + , ε, X e *, ε, X está incorreta, pois a leitura de operadores de soma e
multiplicação não deve interferir no símbolo de controle na pilha.
5.
Os APDs têm capacidade de reconhecimento maior do que os autômatos finitos.
Enquanto estes últimos reconhecem apenas linguagens regulares, os APDs reconhecem
a classe de linguagens livres de contexto determinísticas.
Considere as linguagens a seguir:
I) {03n12n | n ≥ 0}
II) {wwR | w∈ {1, 2} ∗}
III) {w0wR | w∈ {1, 2} ∗}
Para quais dessas linguagens é possível construir um APD?
Resposta correta.
E.
I e III.
1. As transições em autômatos de pilha apresentam quatro informações: o
símbolo lido, o símbolo no topo da pilha, o símbolo ou a cadeia de
símbolos a serem substituídos no topo da pilha e o estado destino (que
pode ser o mesmo).
Analise a transição a seguir e assinale a alternativa correta.
Resposta correta.
B.
A transição é feita quando o símbolo lido da entrada é a e o topo da pilha é b. O símbolo b do
topo da pilha é desempilhado.
A transição tem duas condições: o símbolo lido da entrada deve ser a (primeiro campo)
e o topo da pilha deve ser b (segundo campo). O terceiro campo informa que o símbolo
b de topo da pilha deve ser substituído por palavra, o que efetivamente é a mesma ação
de desempilhar b. A transição consome o símbolo a da entrada e é válida.
2. Autômatos de pilha podem ter várias combinações de transições
diferentes. Entender cada uma delas é fundamental para a construção
correta desse tipo de autômato e, também, para a interpretação de
diagramas.
Analise o autômato a seguir e assinale a alternativa correta que descreve a linguagem
que ele reconhece.
Resposta correta.
E.
{0n1n0n | n > 1}.
No estado p, o autômato de pilha em questão empilha, para cada símbolo 0 lido na
entrada, mais dois símbolos na pilha além do topo. No estado q, para cada símbolo 1
lido, é desempilhado exatamente um símbolo 0 do topo da pilha. O mesmo acontece no
estado r, porém o símbolo lido é 0. Quando não há mais símbolos para serem lidos e o
topo da pilha for o símbolo inicial, é o caso de a palavra ser aceita. Note que o autômato
não aceita a cadeia vazia como entrada, portanto a menor cadeia aceita é de tamanho
3, o que explica o n > 1.
3. A pilha de um autômato de pilha é a estrutura fundamental para que esse
modelo seja mais poderoso que os autômatos finitos mais simples. A pilha
funciona como uma memória primitiva, não podendo acessar qualquer
posição da pilha, apenas o topo.
Considere o autômato a seguir e assinale a resposta correta.
Resposta correta.
D.
O autômato de pilha em questão é válido mesmo que o topo da pilha seja substituído por ele
mesmo em toda transição.
Transições de autômatos de pilha podem substituir o topo da pilha pelo mesmo símbolo,
por nenhum símbolo (cadeia vazia), por um símbolo diferente do topo ou até mesmo por
uma cadeia de símbolos. O autômato em questão é válido e reconhece a linguagem
regular com as palavras de tamanho par. Esse autômato de fato simula um autômato
finito mais simples que reconhece o conjunto de cadeias de tamanho par.
4. A transição em autômatos finitos dependia apenas do estado atual e do
índice do símbolo da cadeia. Em autômatos de pilha, a transição também
depende do símbolo no topo da pilha para ser feita.
Analise as transições do autômato de pilha a seguir considerando que pilha tem dois
elementos conforme ilustrado na figura e que o autômato se encontra no estado q.
Assinale a alternativa correta:
Resposta correta.
A.
Independentemente do símbolo lido da cadeia de entrada, nenhuma transição será feita, pois a
é o topo da pilha e as transições requerem b como topo.
Como o símbolo do topo da pilha é a e as duas transições só podem ser feitas quando o
topo da pilha é b, nenhuma transição será feita e esse ramo de execução morrerá. As
duas transições são válidas, a transição que vai do estado q para r desempilha o
símbolo b do topo da pilha e a transição que fica no estado q adiciona mais dois
símbolos b ao topo da pilha anterior.
5. Autômatos de pilha não determinísticos são mais poderosos que
autômatos de pilha determinísticos. A linguagem wwr tem uma variação, a
linguagem w#wr, a qual requer que o símbolo do meio da palavra, ou seja,
entre w e wr, seja uma cerquilha.
Considere o diagrama de um autômato de pilha a seguir, que tem Z como símbolo inicial
de topo de pilha e o conjunto {0,1,#} como alfabeto de entrada.
Assinale a alternativa correta.
Resposta correta.
B.
O autômato reconhece a linguagem w#wr, que segue apenas um caminho de execução, já que
em qualquer momento há no máximo uma escolha a ser feita.
O autômato de pilha em questão reconhece exatamente e somente a linguagem w#wr.
Além disso, ele não precisa “adivinhar” o meio da cadeia, já que o símbolo # serve para
isso. As transições do estado p para o estado q indicam isso.
1.
Lewis e Papadimitriou (2000) apresentam que as operações de fecho sobre as LLC
proporcionam a construção de novas linguagens com base em linguagens previamente
conhecidas, provas, propriedades e, por fim, construindo algoritmos.
Quanto às operações sobre as LLC, considere as linguagens L1 = {aibicajbj | i, j ≥ 0} e L2
= {ambnc | m, n ≥ 0} sobre o alfabeto = {a, b, c, d} e marque a opção que melhor representa
o resultado da operação L1 ∩ L2.
Você acertou!
D.
Livre de contexto e não regular.
Para obter a resposta correta, deve-se inicialmente analisar as linguagens. Desse
modo, perceba que L1 aceita cadeias como (ab, c, cab, abcab, etc.) e tem
balanceamento duplo, o que denota uma linguagem livre de contexto.
Por outro lado, L2 aceita cadeias como {ac, bc, c, abc, etc.} e, tendo em vista que m e
n têm como regra apenas que os valores contidos sejam maiores ou iguais a 0 sem
qualquer relação entre eles, torna-se simples representar tal linguagem por um
autômato finito, tornando-a uma linguagem regular.
Note que L2 tem como subconjunto {anbnc | n ≥ 0}, que é livre de contexto, logo, isso
prova que a intersecção entre uma linguagem regular e uma linguagem livre de contexto
não é fechada sobre as linguagens regulares. No entanto, pelas propriedades de
fechamento, a intersecção de uma linguagem livre de contexto com uma linguagem
regular gera uma nova linguagem livre de contexto, mas não necessariamente regular, o
que a torna fechada a linguagens livres de contexto.
Assim, a resposta certa é: livre de contexto e não regular.
2.
A LLC correspondente ao tipo 2 da hierarquia de Chomsky tem a linguagem regular e
outras linguagens como subconjunto do seu conjunto total. Nesse tipo de linguagem,
utiliza-se o formalismo de autômato de pilha e gramática livre do contexto, o que
possibilita uma maior representação computacional se comparadaàs linguagens
regulares e tem menor poder computacional se comparada às linguagens não livres de
contexto.
Desse modo, considere a linguagem não livre de contexto La = {aiblcy | 2 < i < l ≤ y} e
assinale a alternativa que aponta corretamente qual(is) é(são) a(s) saída(s) que
representa(m) a(s) cadeia(s) dessa linguagem.
I. aaabbbbcccc
II. aaabbbbccc
III. aaaabbbbbbccccccc
IV.∈
V. aaaaaaabbbcccbbb
Resposta correta.
B.
I e III, apenas.
Análise das opções:
I. aaabbbbcccc: nesse caso, a cadeia deve ser aceita, pois há menos a's que b's, e há a
mesma quantidade de b's e c's, satifazendo as condições da linguagem para i = 3, l = 4
e y = 4.
II. aaabbbbccc: nesse caso, a cadeia deve ser rejeitada, pois há aparições iguais de a's
e c's, e há mais aparições de b's do que c's, não satisfazendo as condições da
linguagem.
III. aaaabbbbbbccccccc: nesse caso, a cadeia deve ser aceita, pois há mais b's que a's
e mais c's que b's, satifazendo as condições da linguagem para i = 4, l = 6 e y = 7.
IV. ∈: nesse caso, a cadeia deve ser rejeitada. Nas cadeias dessa linguagem não
existe cadeia vazia, pois precisaria que i = l = y = 0, não satisfazendo as condições da
linguagem, pois é necessário que, no mínimo, i > 2.
V. aaaaaaabbbcccbbb: nesse caso, a cadeia não deve ser aceita, pois a quantidade de
aparições de a’s é superior aos demais símbolos, e os b's não podem aparecer após as
aparições dos símbolos c's nessa linguagem. 
3.
O lema do bombeamento surgiu como estratégia para identificar se determinada
linguagem pertence ou não a um grupo de linguagem específico. Normalmente é atrelado
à prova por contradição, supondo características inverídicas de algum mecanismo ou
objeto para alcançar o absurdo.
Dessa forma, aplicando o lema do bombeamento, a linguagem L1 = {aibjck | i ≤ j ≤ k},
marque a opção que melhor representa a classificação da L1.
Resposta correta.
C.
Linguagem não livre de contexto.
Para chegar à resposta apropriada, é necessário aplicar o lema do bombeamento na
linguagem L1. Suponha por contradição que L1 seja uma linguagem livre de contexto e,
dessa forma, satisfaça o lema do bombeamento aplicado às linguagens livres do
contexto.
Considere p o tamanho do bombeamento e w como a cadeia apbpcp∈ L1. Se w∈ L1 e
|w| ≥ p, então, pelo lema do bombeamento, pode-se dividir w em cinco partes, de tal
forma que w = uvxyz e ∀i ≥ 0, logo, uvixyiz ∈ L1. Nessa demonstração usaremos o
bombeamento para baixo por questões didáticas.
Conforme a segunda condição do lema do bombeamento, é assegurado que v e y não
podem ser cadeias vazias. Dessa forma, considere todas as possíveis divisões de w em
duas situações.
Situação 1: se v ou y tiverem mais de um tipo de símbolo, a cadeia não terá os símbolos
na ordem correta; logo, w ∉ L1.
Situação 2: se v e y tiverem somente um tipo de símbolo do alfabeto, sabe-se então,
pela divisão da cadeia w, que pelo menos um dos tipos dos símbolos a, b ou c não vai
aparecer em v nem em y.
De acordo com o bombeamento da cadeia, com base no comprimento p, alguma das
situações (1 ou 2) vai acontecer. Dessa forma, qualquer uma das situações incorre em
contradição. Logo, pode-se dizer que L1 não é livre do contexto.
4.
LLC é um tipo de linguagem do tipo 2, e podemos afirmar que
as linguagens regulares são um subconjunto dessas. Uma das características que tornam
as linguagens livres de expressão
mais poderosas que as linguagens regulares é a possibilidade
de bombeamento duplo.
Desse modo, dado um alfabeto = {0, 1, 2} e a linguagem L1 = {2m1m0* 2n1n | m, n ≥ 0},
assinale a alternativa que aponta corretamente qual(quais) é(são) a(s) saída(s) que
representa(m) a(s) cadeia(s)
 dessa linguagem.
I. 2121
II. 12000021
III. ε
IV. 21210
V. 101
Você acertou!
C.
I e III, apenas.
Análise das opções:
I. 2121: ao considerarmos 0*, pode-se perceber que, com essa expressão, são
construídas cadeias como {ε, 0, 00, etc.}. Desse modo, para uma subcadeia ε em 0* e
valor igual a 1 em m e n, tem-se 2121, o que torna a cadeia aceita.
II. 12000021: do mesmo modo, ao considerarmos 0*, pode-se admitir a cadeia 0000
como parte integrante dessa expressão. No entanto, os valores 21 estão em ordem
inversa na primeira parte da cadeia, sendo representada por 12 em vez de 21, o que
torna essa cadeia não aceita.
III. ε: para um valor m e n igual a 0 e obtendo a cadeia vazia, ε, de 0*, será produzida a
cadeia ε, o que torna a opção aceita.
IV. 21210: nesse caso, a cadeia se torna não aceita, pois não existem valores de 0's ao
final da cadeia, com exceção para um valor n = 0. No entanto, para esse caso, a
subcadeia 2121 tornaria a cadeia inválida.
V. 101: como podemos ver na expressão, nas subexpressões 2m1m e 2n1n, fica claro
que em cada uma é necessário o mesmo valor de 2’s e 1’s. Assim, nesse caso não é
possível obter cadeias apenas com valores 2’s ou 1’s, o que torna a cadeia não aceita.
5.
Contendo em seu conjunto o subconjunto das linguagens regulares e outros tipos de
linguagem, a LLC alcança o mesmo resultado quando utiliza autômato de pilha e
gramáticas livres de contexto em determinado problema.
Com base na linguagem do tipo 2 da hierarquia de Chomsky, pode-se fazer bombeamento
duplo, tanto bombeando para baixo como para cima, e, como consequência, tem-se um
poder maior de representação.
Desse modo, dado um alfabeto = {a, b, c} e a linguagem L2 = {ambmcnbm | m ≥ 0, n > 0 },
assinale a alternativa que aponta corretamente qual(quais) é(são) a(s) saída(s) que
representa(m) a(s) cadeia(s) dessa linguagem.
I. abacb
II. aabbccbb
III. c
IV. aaaabbbbcbbbb
V. aaaaaaabbbcccbbb
Resposta correta.
C.
II, III e IV, apenas.
Análise das opções:
I. abacb: nesse caso, a cadeia não deve ser aceita, pois não há possibilidade de
aparições de novos a’s depois de qualquer ocorrência dos b’s ou c’s.
II. aabbccbb: nesse caso, a cadeia deve ser aceita, pois, ao considerarmos m = 2 e n =
2, será possível alcançar a cadeia aabbccbb.
III. c: nesse caso, a cadeia deve ser aceita, pois, ao considerarmos m = 0 e n = 1, será
possível alcançar a cadeia c.
IV. aaaabbbbcbbbb: nesse caso, a cadeia deve ser aceita, pois, ao considerarmos m =
4 e n = 1, será possível alcançar a cadeia aaaabbbbcbbbb.
V. aaaaaaabbbcccbbb: nesse caso, a cadeia não deve ser aceita, pois a quantidade de
aparições de a’s deve ser igual às aparições de b’s (considerando o valor de m).
1.
O formalismo gramática livre de contexto foi desenvolvido e sistematizado inicialmente
por Avram Noam Chomsky, sendo esse mecanismo um exímio gerador das linguagens
livres de contexto ou linguagem do tipo 2, conforme a hierarquia de Chomsky. Dessa
forma, considere a gramática G1 = ({L, K}, {0, 1}, R, K), em que R tem as seguintes regras:
K → 1K11 | L
L → 0 L | ε
Assinale a alternativa que traduz a gramática G1 em uma linguagem livre de contexto L1.
Resposta correta.
D.
A linguagem tem a seguinte estrutura: L1 = {1n0m12n | n ≥ 0, m ≥ 0}.
Observe que a linguagem pode conter cadeia vazia. Logo, pode haver a possibilidade
de não existência dos símbolos ou de algum símbolo. Note que a quantidade de 1’s
pode ser particionado em dois conjuntos: um conjunto contendo n 1’s e outro conjunto
contendo 2n 1’s. Perceba que, entre esses dois conjuntos de 1’s, pode haver aparições
de 0’s. Logo, a linguagem que gera as mesmas cadeias que a gramática G1 é a L1 = {
1n0m12n | n ≥ 0, m ≥ 0}.
2.
As gramáticas livres de contexto foram desenvolvidas a partir de uma estratégia que
utiliza substituições recursivas dentro de seus símbolos denominados variáveis ou não
terminais. Em um símbolo não terminal, pode-se atribuir outro símbolo não terminal ou
um terminal.
Dessa forma, considere a linguagem L2 = { 0n1m2m33n | n ≥ 0, m > 0} e determine as regras
usadas por essa gramática, em que será possível ver a utilização das chamadas
recursivas dentro das variáveis.
Você acertou!
E.
A gramática tem as seguintes regras: K → 0K333 | L, L → 1L22 | 12. 
Observe que a linguagem deve conter sempre a aparição dos símbolos 1 e 2, sendo
que esses símbolos devem aparecer necessariamentena mesma quantidade. Note que
os símbolos 0 e 3 podem não aparecer na cadeia, mas, quando aparecerem, a
quantidade do símbolo 3 deve ser sempre o triplo da quantidade da aparição do símbolo
0. Dessa forma, as regras são as seguintes: K → 0K333 | L, L → 1L22 | 12. De acordo
com a L2, não são possíveis as regras de formações K → 0K33 e K → 0K3333, pois, se
houver aparição dos símbolos 0 e 3, a quantidade de 3 deve ser necessariamente 3
vezes a quantidade do símbolo 0. De igual modo, nessa linguagem, não são possíveis
as regras de formação L → 21 ou L → 11.
3.
A formalização de uma ideia fornece argumentos sólidos ao se questionar sobre
determinado escopo de atuação dela, tendo, assim, a seu favor, a precisão e
notações/terminologias para se expressar melhor no tocante ao assunto. Aproveitando a
ideia de formalização, as gramáticas livres de contextos também têm a sua.
Dada a linguagem:
L3 = { 1an#bn1 | n > 0} 
Determine a valoração de sua formalização.
Resposta correta.
C.
A 4-upla é: ({A, B}, {1, a, b, #}, {A → 1aBb1 , B → aBb, B → # }, A) .
Muitas gramáticas podem reconhecer a mesma linguagem, mas, levando em
consideração as alternativas apresentadas, a única que corresponde integralmente à
linguagem L3 é a A 4-upla é: ({A, B}, {1, a, b, #}, {A → 1aBb1 , B → aBb, B → # }, A). O
item c é a resposta correta, pois a variável inicial é a A e as variáveis são A e B,
enquanto os símbolos terminais são 1, a, b, #. Para essa questão, deve-se ter muito
cuidado nas regras de formação, no caso o conjunto R da formalização. Observe que
essa gramática não vai gerar, em nenhum momento, cadeia vazia; a sua menor cadeia
gerada é a 1a#b1, variando somente a quantidade igual de a’s e b’s. Logo, tem-se a
regra A → 1aBb1 inicialmente; em seguida, deve-se utilizar recursivamente a regra B →
aBb. Para alcançar o símbolo #, não se pode atribuir diretamente à variável A o símbolo
#, pois viabilizaria a existência da cadeia #; logo, podem-se criar as regras B → aBb, B
→ #. Observe que, nessa gramática, não existem o símbolo c, nem as regras de
formação A → Bb, A → 1Ab1 e sua variável inicial não pode ser a Z, pois esta, além de
não ser a variável que inicia a gramática, também não existe.
4. A árvore sintática é um recurso visual e uma abordagem para fazer a representação das
gramáticas livres de contexto. Com ela, pode-se ver o funcionamento das substituições
das variáveis por outras variáveis ou símbolos terminais utilizados na gramática em
questão.
Dadas as árvores sintáticas representadas nas figuras 1, 2, 3, 4 e 5, determine a gramática
que a desenha.
Você acertou!
C.
A gramática é: ({S, L}, {1, 0}, {S → 0S0| 1S1| L, L → 0 | 1 | ε }, S). 
Observe que a gramática gera cadeias no estilo de palíndromos de tamanhos ímpares e
pares. Note que a variável inicial é a S e as variáveis são S e L, enquanto os símbolos
terminais são 0, 1 e ε. A primeira substituição gera 0S0, mas poderia gerar, de igual
modo, a 1S1 e L, ou seja, S → 0S0| 1S1| L. A inserção da variável L é por conta do
acesso aos símbolos terminais da segunda regra, para assim, finalizar a cadeia. Logo, a
alternativa correta é: ({S, L}, {1, 0}, {S → 0S0| 1S1| L, L → 0 | 1 | ε }, S). Ressalta-se
que, a partir das árvores sintáticas, não são possíveis as regras S → 1S11 e L → 10. De
igual modo, essas árvores sintáticas não têm os símbolos terminais ε e #. 
5.
O problema da ambiguidade é algo indesejado em linguagens de programação, visto que
as linguagens de programação precisam trabalhar sobre um dado exato, sem dualidade
de significado, ou seja, sem ambiguidade. Por exemplo, na linguagem C, a cláusula de
condição if-then-else é bem definida e sem ambiguidade. Caso contrário, haveria
problema para o compilador entender a sintaxe da estrutura em questão.
De acordo com o conceito de ambiguidade em gramáticas livres de contexto, analise as
afirmações a seguir e assinale a alternativa que contém apenas as corretas:
I. Diz-se que uma cadeia é ambígua se tem mais de uma derivação implementável pela
gramática.
II. Diz-se que uma cadeia é ambígua se tem mais de uma árvore sintática para a derivação
de uma mesma cadeia.
III. Diz-se que uma gramática é ambígua se tem mais de uma derivação para a mesma
cadeia.
IV. Diz-se que uma árvore sintática produz cadeia ambiguamente somente se faz
derivações à esquerda.
V. O fato de uma linguagem não conseguir deixar de ser ambígua indica que se trata de
uma linguagem inerentemente mbígua.
Você acertou!
C.
II e V.
Ao analisar as afirmativas, tem-se o seguinte:
I. O fato de uma cadeia ser alcançada por mais de uma derivação não a torna ambígua,
mas multiplamente derivável.
II. A aparição de uma ambiguidade na produção de uma cadeia é provocada pela
existência de mais de uma árvore sintática na derivação da cadeia em questão.
III. O fato de uma gramática realizar mais de um tipo de derivação e alcançar a mesma
cadeia não a faz ambígua, pois é possível a existência de múltiplas derivações para
gerar a mesma cadeia e, mesmo assim, sua árvore sintática pode ser única.
IV. O fato de uma árvore ser derivável inicialmente em algum sentido não está
relacionado à geração de cadeia ambiguamente.
V. Se, ao excluir símbolos inúteis, o símbolo ε e regras do tipo Variável 1➝ Variável 2, a
ambiguidade persistir na linguagem de tal forma que não possa ser excluída, essa
linguagem é inerentemente ambígua.
1.Uma das funções de uma máquina de Turing consiste em reconhecer
linguagens. Isso quer dizer que ela é capaz de classificar palavras como
pertencentes ou não a determinada linguagem.
Considere a máquina de Turing definida a seguir:
Qual das seguintes cadeias é rejeitada pela máquina acima? 
Resposta correta.
D.
aabbaa
A linguagem aceita sobre essa máquina de Turing é L = { a n b m a (n+m) | n≥1 em≥1} .
Ou seja, palavras que comecem com uma sequência de n símbolos ‘a’, seguidos de m
símbolos ‘b’ e terminando com (n+m) símbolos 'a'. Dentre as alternativas fornecidas, a
única palavra que não segue esse padrão é ‘aabbaa’. Para ser aceita, essa palavra
deveria terminar com 4 símbolos ‘a’. Em todos os demais casos, esse padrão se repete:
aabbbaaaaa (2 ‘a’s, 3 ‘b’s e 5 ‘a’s), abaa (1 ‘a’, 1 ‘b’ e 2 ‘a’s), aaaabaaaaa (4 ‘a’s, 1 ‘b’ e
5 ‘a’s) e abbbbaaaaa (1 ‘a’, 4 ‘b’s e 5 ‘a’s).
2. A função de transição de uma máquina de Turing é uma função parcial que
mapeia um estado e um símbolo lido na posição atual da cabeça da fita em uma
tripla que consiste no próximo estado, no símbolo que será escrito na fita e na
direção em que a cabeça da fita se moverá.
Considere a máquina de Turing dada a seguir:
 Com base no conteúdo da fita e no estado corrente da máquina, qual será o
próximo estado alcançado? O que será escrito na posição para onde a cabeça da
máquina está apontando?
Você acertou!
B.
Próximo estado: q4. Será escrito ’2’ na fita.
A combinação do estado q0 com o símbolo ‘b’ levará a máquina ao estado q4, com a
escrita do símbolo ‘2’ e movimento para a direita da cabeça da fita. As demais
transações são incorretas. A alternativa que sugere que o próximo estado é indefinido e
que a palavra seria rejeitada está incorreta, pois há uma transição válida para o par de
estado atual, com símbolo lido. As alternativas que mencionam que os próximos
estados seriam q1 ou q7 também estão incorretas, pois para ir para o estado q1 seria
necessário ler o símbolo ‘a’ na fita. Para ir para o estado q7, seria preciso ter lido o
símbolo ‘1’ ou o símbolo ‘2’ na fita. Por fim, a alternativa que acerta o próximo estado,
mas erroneamente sugere a escrita do símbolo ‘b’ na fita, está incorreta, pois essa
transação não está prevista no conjunto de transações da máquina.
3.
O estudo do que pode (ou não) ser computado é o cerne da ciência da computação.
Apesar de ser bastante antigo, ele se desenvolveu principalmente na primeira metade do
século XX e foi revolucionado quando Alan Turing propôs um formalismo genérico de
computação capaz de representar qualquer problema computável.
Avalie as seguintes afirmaçõessobre a máquina de Turing e assinale a alternativa correta. 
Você acertou!
A.
Uma máquina de Turing é capaz de reconhecer qualquer linguagem que se enquadre na
taxonomia de Chomsky.
4.
Diversas modificações para as máquinas de Turing determinística foram propostas ao
longo dos anos com o objetivo de aumentar seu poder computacional. Até hoje, todos os
modelos conseguiram no máximo igualar o poder de processamento da máquina
determinística, sem superá-lo.
Dado o gráfico de transições de uma máquina de Turing a seguir, qual é uma sequência
possível de estados percorridos para que essa máquina aceite a palavra de entrada
‘aabccb’?
Resposta correta.
C.
q0 — q0 — q2 — q2 — q2 — q4.
A única sequência que possui transições que possibilitam o reconhecimento da palavra
de entrada é q0 — q0 — q2 — q2 — q2 — q4. Veja como seriam as transições nessa
sequência de estados: iniciando em q0, ao ler a permanecer em q0, ao ler o segundo
símbolo a permanecer em q0, ao ler b ir para q2, permanecer em q2 ao ler o símbolo c,
permanecer em q2 ao ler o segundo símbolo c, e ir para o estado q4 ao ler b. Todas as
demais sequências possuem alguma transição inválida. Por exemplo, na sequência q0
q0 — q0 — q0 — q0 — q3 — q4, a última transição é inválida, pois não é possível ir de q3
para q4 lendo o valor b. Na sequência q1 — q1 — q1 — q1 — q1 — q4, o problema está
no segundo q1, pois ao ler o símbolo ‘a’, o único movimento possível é para q4. Na
sequência q0 — q2 — q2 — q2 — q2 — q4, o problema está na primeira transição para o
estado q2, que não pode ser feita com a leitura do símbolo ‘a’. Por fim, q0 — q0 — q0 —
q3 — q3 — q4 está incorreta porque a segunda transição para q3 é impossível.
5.
Uma máquina de Turing é composta de uma fita de tamanho infinito com sua cabeça de
leitura e escrita que servem de memória e como dispositivo de entrada e saída. Também
existe uma função de transição, que corresponde ao programa executado pela máquina.
Sobre a máquina de Turing, analise as seguintes afirmações:
I. Uma máquina de Turing com múltiplas fitas pode reconhecer qualquer linguagem
recursivamente enumerável.
II. Para refutar a hipótese de Church, basta apresentar uma modificação da máquina de
Turing que comprovadamente tenha mais poder computacional que uma máquina de
Turing determinística.
III. Por padrão, uma máquina de Turing determinística pode alterar diversos pontos da fita
em cada transição e é capaz de transferir sua atenção para mais de uma posição da fita
em cada argumento da função de transição.
Qual(is) dessas afirmações está(ão) correta(s)?
Resposta correta.
C.
I e II.
Somente as afirmações I e II estão corretas. A assertiva I está correta porque uma
máquina com múltiplas fitas tem o mesmo poder computacional que a máquina de
Turing tradicional; ou seja, ela reconhece as mesmas linguagens, portanto pode
reconhecer qualquer linguagem enumerável recursivamente. A assertiva II também está
correta, já que, ao encontrar um formalismo que compute uma função que não seja
computável em uma máquina de Turing, ficará provado que ela não é capaz de
computar todas as funções computáveis e que o novo formalismo possui maior poder
computacional que a máquina de Turing. A assertiva III está incorreta, pois, por padrão,
só existe uma cabeça na fita, o que significa que apenas um símbolo pode ser alterado
a cada passo da função de transição.
1.
Uma linguagem é denominada "decidível" ou "recuriva" se existe uma máquina de Turing
que a aceita e para, para cada string de entrada. A família de linguagens decidíveis é
menor do que a de linguagens recursivamente enumeráveis.
A definição de semidecisão ou semirrecursão por uma máquina de Turing é uma extensão
direta da noção de aceitação para um:
Resposta correta.
A.
autômato finito determinístico.
A definição de semidecisão por uma máquina de Turing é uma extensão direta da
noção de aceitação para o autômato finito determinístico. Um autômato finito, sempre
quando lê todas as entradas, para em um estado final ou não final. Nesse sentido, é um
dispositivo computacional útil, um algoritmo a partir do qual se pode obter respostas
confiáveis sobre se uma entrada pertence à linguagem aceita. O autômato espera até
que todas as entradas tenham sido lidas e observa o estado da máquina. Na máquina
de Turing de semidecisão, uma linguagem L não pode ser empregada de maneira útil
para dizer se uma string w está em L, porque, se w não pertence a L, então nunca se
sabe se a máquina não vai entrar em loop.
2.
As gramáticas irrestritas geram linguagens recursivamente enumeráveis. As produções
da gramática irrestrita não têm restrições, gerando linguagens que precisam ser
reconhecidas por uma máquina de Turing.
Qual alternativa representa uma gramática irrestrita e suas regras de produção, geradas
por determinada linguagem recursivamente enumerável e reconhecidas pelo autômato de
Turing?
Resposta correta.
D.
G = ({S, X, Y}, {a, b, c}, P, S)
P = {
S → aXb | aXa
Xa → c
Xb → c
X → ε
}
Para a explicação, considere a gramática: G = (V, Σ, P, S).
Gramáticas do tipo 3, pois geram linguagens regulares. As gramáticas do tipo 3 devem
ter um único elemento não terminal no lado esquerdo e um do lado direito consistindo
produções no seguinte formato: α∈ N , β∈ Σ, β∈ N, β∈ ΣN ou β = ε, de forma não
exclusiva.
Gramáticas do tipo 2 geram linguagens livres de contexto. As produções devem estar
na forma: α∈ N, β∈ V*.
A gramática do tipo 1 gera linguagens sensíveis ao contexto. As produções devem estar
no formato: α∈ V*NV*, β∈ V* , |β| ≥ |α|.
 A alternativa correta é a que representa uma gramática do tipo 0, que gera linguagens
recursivamente enumeráveis. As produções não têm restrições. Essa linguagem é que
é reconhecida por uma máquina de Turing. As produções devem estar no formato: α∈
V*NV*, β∈ V*.
3.
Seja L uma linguagem.
Qual da(s) alternativa(s) está(ão) correta(s) com base na teoria de linguagem
recursivamente enumerável?
I. Nem L, nem o complemento de L, são linguagens recursivamente enumeráveis.
II. Se L é recursivamente enumerável, o complemento de L pode não ser recursivamnte
enumerável, e vice-versa.
III. L e o complemento de L são recursivamente enumeráveis, mas não são recursivos.
IV. L e o complemento de L são recursivos.
Você acertou!
E.
Apenas as alternativas I, II e IV estão corretas; as demais estão incorretas.
A alternativa I está correta, porque se L não for recursivamente enumerável, seu
complemento não será recursivamente enumerável.
A alternativa II está correta, porque se L for recursivamente enumerável, o complemento
de L não precisa ser recursivamente enumerável, ou vice-versa. As linguagens
recursivamente enumeráveis não são fechadas sob complementação. A alternativa III
está incorreta, porque se L for recursivamente enumerável, o complemento de L não
será recursivamente enumerável. Mas, se L é recursivo, o complemento de L também
será recursivo, e ambos serão recursivamente enumeráveis, porque as linguagens
recursivas são um subconjunto das recursivamente enumeráveis. A alternativa IV está
correta, porque se L for recursivo, o complemento de L também será recursivo.
4.
Uma linguagem L é recursiva se alguma máquina de Turing (MT) aceitar e parar a cada
entrada.
O complemento de uma linguagem recursiva também é recursivo. Se L é recursivo,
consequentemente:
Você acertou!
A.
L é recursivamente enumerável.
Uma máquina de Turing aceita uma string w se a MT parar em um estado final. Uma
máquina de Turing rejeita uma string w se a MT parar em um estado não final ou se a
MT nunca parar. Uma linguagem L é recursivamente enumerável se alguma MT a
aceitar. Uma linguagem L é recursiva se alguma MT a aceitar e parar a cada entrada. L
ser recursiva implica L recursivamente enumerável.
5.
Existe a prova que faz uso do seguinte fato: u ma linguagem recursivamente enumerável
pode ser aceita ou reconhecida pela máquina de Turing.
Sobre essa afirmação, é possível dizer:
Resposta correta.
B.
Existe a prova, que diz: um conjunto de strings é um conjunto infinito econtável.
Algumas linguagens não são recursivamente enumeráveis.
Prova: um conjunto de strings é um conjunto infinito e contável.
O conjunto de linguagens é infinito porque é um conjunto de possibilidades de strings a
serem passadas pelos usuários.
Linguagens recursivamente enumeráveis são contáveis porque as máquinas de Turing
são contáveis.
1. A classe das linguagens recursivas está contida no grupo das linguagens
recursivamente enumeráveis e costuma ser denotada por meio das
máquinas de Turing, como no exemplo a seguir. Tais máquinas, ao denotar
linguagens recursivas, têm uma característica muito importante, isto é,
sempre param, aceitando determinada cadeia ou rejeitando-a. Por esse
motivo, essas linguagens são comumente chamadas de decidíveis ou
Turing decidíveis.
Dada a máquina de Turing apresentada, considere as cadeias a seguir e, posteriormente,
assinale a alternativa que contém as aceitas por ela.
I - abc
II - aabcaab
III - acac
IV - aca
V - aacaac
Resposta correta.
C.
II e IV.
- abc: inicia o processo no estado q0, onde transita para o estado q1 e, posteriormente,
para q2, onde o processo para, negando a cadeia.
- aabcaab: inicia no estado q0, passando ao estado q1, q2, q3, q4, voltando ao estado
q0, onde o processo é repetido até chegar novamente a q0. Ao chegar em q0, transita
para q7, q8, q9 e q10, q0 e q5 para, finalmente, parar em um estado de aceitação.
- acac: inicia em q0, passa para q1, q2, q3, q4 até voltar à q0, onde vai a q5, no qual o
processo para, negando a cadeia.
- aca: inicia em q0, passa por q1, q2, q3 e q4. Ao chegar novamente em q0, vai a q5 e
finaliza em q6, aceitando a cadeia.
- aacaac: percorre do estado q0 a q4 duas vezes, volta à q0, passa a q5, onde o
processo para, negando a cadeia.
2 .Conforme Coutinho (2007), a classe das linguagens recursivas é fechada sobre
as operações de união, interseção e complementação. Isso significa que, dadas
duas linguagens recursivas L1 e L2, ao aplicar qualquer uma dessas operações, o
resultado consistirá em uma linguagem também recursiva.
Dado o exposto, considere
Resposta correta.
D.
aabbaabb, bbbbbb, aaaaaaaa, aabaab.
3. Conforme Menezes (2011), as linguagens recursivas englobam, do maior nível
de poder para o menor, as linguagens próprias, os conjuntos das linguagens
sensíveis ao contexto, as linguagens livres de contexto e, por fim, as linguagens
regulares.
As linguagens regulares podem ser representadas por expressões regulares. Desse
modo, dada a máquina Turing a seguir, marque a opção que representa a expressão
regular que a denota. 
Resposta correta.
D.
1*00*10(10)*
0*1*(0+1): note que essa expressão pode produzir a cadeia 11, que não é aceita pela
máquina de Turing apresentada.
(0+1)*0101: essa expressão pode produzir a cadeia 0101, que não é aceita pela
máquina de Turing.
(0+1)*101: de forma semelhante à opção anterior, essa expressão pode produzir a
cadeia 0101, que não é aceita pela máquina de Turing.
1*00*10(10)*: essa opção produz 1* (estado q1), 0, na transição do estado q1 para q2,
0* no estado q2, 1, na transição do estado q2 para q3, 0, na transição de q3 a q4 e, por
fim, (10)* nas transições de q4 para q3 e de q3 para q4.
01(010)*: essa expressão pode produzir a cadeia 01, que é rejeitada pela máquina de
Turing.
4.
Conforme Rich (2019), para toda cadeia w pertencente a Σ*,
dada uma linguagem L, se existir, ao menos, uma máquina
de Turing que represente L de modo a parar, aceitando ou
 negando w, dizemos que L é uma linguagem recursiva.
Tendo em vista o exposto, dada a linguagem L= {ai bj ck | i × j = k; i, j, k ≥ 1}, analise as
opções a seguir e informe quais representam as cadeias válidas para L.
 
I - abcc
II - aabbcccc
III - aaaa
IV - aaabbcccccc
V - abbccc
Resposta correta.
B.
II e IV.
Perceba que i representa a quantidade de símbolos a’s, j de b’s e k de c’s.
As restrições são que i × j=k e que i,j,k ≥1.
- abcc: i = 1, j = 1 k = 2, pois 1 × 1 ≠ 2.
- aabbcccc: i = 2, j = 2 k = 4, temos 2 × 2 = 4.
- aaaa: essa alternativa anula a regra 2, i,j,k ≥1.
- aaabbcccccc: i = 3, j = 2 k = 6, tem-se 3 × 2 = 6.
- abbccc: : i = 1, j = 2 k = 3, tem-se 1 × 2 ≠ 3.
5. Conforme Sipser (2005), provar que uma linguagem é recursiva é simples. Basta
elaborar uma máquina de Turing que a decida. Por isso, normalmente conhecemos
essas linguagens com denominações como Turing decidíveis ou, simplesmente,
decidíveis. Desse modo, ao ler qualquer cadeia w, a máquina deve simplesmente
aceitá-la se fizer parte da linguagem ou recusá-la caso contrário.
Diante do exposto, considere a máquina de Turing a seguir e informe qual linguagem
recursiva sobre {0} ela denota. 
Resposta correta.
A.
L1 = {02^n) | n ≥ 0}
1.
Uma linguagem finita é aquela que corresponde a um conjunto finito de cadeias de
caracteres. Logo, uma linguagem não é finita se existir um conjunto infinito de cadeias de
caracteres nessa linguagem. Todas as linguagens finitas são regulares, mas nem todas
as regulares são finitas. Uma linguagem regular é aquela que pode ser expressa por uma
expressão regular. Uma expressão regular consiste de sequências de caracteres que
podem ter: (a) repetições de determinadas subsequências em indeterminado número de
vezes e; (b) escolhas entre duas ou mais subsequências.
Todas as linguagens regulares são livres de contexto, mas nem todas as livres de
contexto são regulares. Uma linguagem livre de contexto é aquela que pode ser expressa
por meio de uma gramática livre de contexto. Uma gramática livre de contexto é um
conjunto de regras de derivação recursivas aninhadas além daquilo que as linguagens
regulares já são capazes de reconhecer. Cada regra, denominada "produção", é definida
como a forma como um símbolo não terminal pode ser expandido em uma sequência de
símbolos terminais e não terminais. A cadeia de caracteres a ser reconhecida ou gerada
por uma gramática livre de contexto consiste apenas de símbolos terminais, sendo os
símbolos não terminais usados apenas nas etapas intermediárias de geração ou
reconhecimento da cadeia de caracteres.
Todas as linguagens livres de contexto são sensíveis ao contexto, mas nem todas as
sensíveis ao contexto são livres de contexto. Uma linguagem sensível ao contexto é
aquela que pode ser expressa por alguma gramática sensível ao contexto. Uma gramática
sensível ao contexto é um tanto similar a uma gramática livre de contexto, mas com uma
grande diferença: as produções não necessariamente mapeiam apenas símbolos não
terminais para sequências de terminais e não terminais. Elas podem mapear sequências
de terminais e não terminais para outras sequências de terminais e não terminais, e essa
característica as torna mais expressivas do que as gramáticas livres de contexto. A única
restrição de uma gramática sensível ao contexto é que a quantidade de símbolos no lado
esquerdo das suas produções deve ser menor ou igual à quantidade de símbolos no lado
direito.
Todas as linguagens sensíveis ao contexto são irrestritas, mas nem todas as irrestritas
são sensíveis ao contexto. A palavra "irrestrita" já diz que a linguagem não impõe
nenhuma restrição às suas produções gramaticais. Esse conjunto engloba as linguagens
chamadas "recursivamente enumeráveis".
Considere a gramática a seguir para gerar a linguagem:
{ anbncn : n ≥ 1 }
S → aBC
S → aSBC
CB → CZ
CZ → WZ
WZ → WC
WC → BC
aB → ab
bB → bb
bC → bc
 cC → cc
Como a linguagem reconhecida por essa gramática pode ser classificada segundo a
definição apresentada? Considere apenas a categoria mais restrita a que essa gramática
pertence.
Você acertou!
C.
Linguagem sensível ao contexto.
A gramática proposta fere as restrições para as linguagens finitas, pois permite
reconhecer um número ilimitado de palavras. Ela também não é regular, pois determina
que a quantidade de símbolos a, b e c seja igual, o que não pode ser feito nesse tipo de
linguagem. A gramática proposta também não é livre de contexto, pois suas produções
admitem mais do que apenas um símbolo não terminal no lado esquerdo das

Outros materiais