Você está na página 1de 38

UFES CEUNES - Engenharia de Computao e Cincia da Computao

Linguagens Formais e Autmatos 2017/1


Prof. Henrique Monteiro Cristovo
Exerccios

1) Crie uma gramtica para gerar nmeros reais.


Defina a 4-upla de elementos da gramtica G = (V, T, P, S)
Exemplos de strings desta linguagem: { 2.5, +2.5, -2.5, +2, -2, +0, 0, .5, -.5}

2) Refaa o exerccio anterior, agora como gramtica regular.

3) Faa uma gramtica para gerar todos os nmeros romanos.


Veja alguns exemplos de nmeros romanos e seus respectivos valores em nmeros arbicos:
I=1 VI = 6 XX = 20 LXX = 70 CCC = 300 DCCC = 800
II = 2 VII = 7 XXX = 30 LXXX = 80 CD = 400 CM = 900
III = 3 VIII = 8 XL = 40 XC = 90 D = 500 M = 1000
IV = 4 IX = 9 L = 50 C = 100 DC = 600 MM = 2000
V=5 X = 10 LX = 60 CC = 200 DCC = 700 MMM = 3000
Obs.:
o menor nmero romano : I (= 1)
o maior nmero romano possvel : MMMCMXCIX (=3999)

Como proposta inicial para este exerccio, faa apenas para os nmeros de I a XCIX (1 a 99).

4) Crie expresses regulares para representar cada uma das linguagens regulares descritas a seguir:
a. Nmeros romanos de 1 a 99.
b. Valores monetrios em Reais. Possuem exatamente duas casas decimais depois da vrgula, e usam ponto
como separador de milhar.
Exemplos: { R$2,35 ; R$1.546,98 ; R$1,00 ; R$10.000.000.000,00 }
c. Strings que possuem uma quantidade par de as sobre o alfabeto = {a,b,c}
d. Strings que possuem tamanho mltiplo de trs, sobre o alfabeto = {a,b,c}
e. Strings com pelo menos um 1 sobre o alfabeto = {0,1}
f. Strings terminadas em 110 sobre o alfabeto = {0,1}
g. Strings contendo 00 sobre o alfabeto = {0,1}
h. Strings iniciadas e terminadas em 10 sobre o alfabeto = {0,1}
i. Strings formadas por uma seqncia de a's seguida de uma seqncia de b's e terminada por uma
seqncia de c's. possvel que cada uma das trs seqncias descritas no possuam caracteres, mas se
eles ocorrerem devem estar na ordem: as, bs e cs. A string vazia no pode ser aceita. Considere o
alfabeto = {a,b,c}

5) (POSCOMP, 2004).

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 1 / 38


6) (POSCOMP, 2004).

7) (POSCOMP, 2009)

8) (POSCOMP, 2012)

9) (ENADE, 2014)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 2 / 38


10) (ENADE, 2014)

11) (POSCOMP, 2013)

12) (POSCOMP, 2016)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 3 / 38


13) (POSCOMP, 2008)

14) (ENADE, 2011)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 4 / 38


15) (POSCOMP, 2009)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 5 / 38


16) (ENADE, 2005)

17) (POSCOMP, 2012)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 6 / 38


18) Faa um AFD para cada item do exerccio 4. Desenhe o grafo e a sua definio atravs da 5-upla de
elementos M = (, Q, , q0, F).

Obs.: todo AFND ou AF gerado deve ser reconstrudo como um AFD.

19) A partir do AFND fornecido atravs da quntupla de elementos, faa o desenho do grafo, converta-o para um
AFD representando-o pelo desenho do grafo, reescreva a sua quntupla de elementos agora como AFD,
escreva a ER equivalente e a gramtica regular atravs de sua 4-upla de elementos.

M = (, Q, , q0, F)

= { a,b,c }

Q = { q0, q1, q2, q3 }

funo transio:
a b c
q0 {q0,q1} {q0} {q0}
q1 {} {q2} {}
q2 {} {} {q3}
q3 {} {} {}

F = {q3}

20) (POSCOMP, 2002)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 7 / 38


21) (POSCOMP, 2008)

22) A partir do alfabeto = { a,b }, faa um AFND e uma ER para reconhecer e denotar, respectivamente a
linguagem:

L = { w | o quinto smbolo da direita para esquerda de w a }

23) Para cada uma das linguagens regulares descritas a seguir, faa uma ER (expresso regular), em seguida faa
um AFD (autmato finito determinstico), e por ltimo escreva a GR (gramtica regular) equivalente a partir
do algoritmo de transformao de ADF em GR.

Considere as letras minsculas {a,b,c} como alfabeto.

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 8 / 38


a. { ai bn ap bk | i >= 0, n >= 1, p >= 2, k >= 3 }

b. { ai b a b2k | i >= 1, k>=0 }

c. { a2i b2n+1 ck | i,n,k >= 0 }

d. { (ab)i c bk | i,k >= 0}

24) (POSCOMP, 2003)

25) A partir de uma sequenca de caracteres formada apenas por dgitos, ou seja, o alfabeto
= { 0,1,2,3,4,5,6,7,8,9 }, faa um AFD para buscar o nmero 153.

26) Considerando um texto formado apenas por elementos do alfabeto = { a,b,c }, construa uma AFD para
buscar as palavras aba e bac.

27) Considerando um texto formado apenas por elementos do alfabeto = { 0,1 }, construa uma AFD para
buscar as seguintes trs palavras: 10, 111 e 01.

28) (POSCOMP, 2013)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 9 / 38


29) Verifique que o Lema do Bombeamento funciona nas seguintes linguagens regulares.

a. a* b c+
b. (a|b)* ab

c. (ab)+

30) Descubra se as seguintes linguagens so regulares ou no.

Dica: para provar que uma linguagem regular basta apresentar uma das trs abstraes (AFD, ER ou GR);
para provar que ela no regular use o Lema do Bombeamento provando por absurdo.

Observe ainda que apenas mostrar que uma linguagem satisfaz o lema do bombeamento no suficiente para
provar que ela regular.

a. { (ab)n (ab)n | n >= 0}

b. { (ab)n (cd)n | n >= 0}

c. { w | w palavra da ling. com alfabeto {a,b} e contm quantidade maior de smbolos b }

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 10 / 38


d. { w | w palavra da ling. com alfabeto {a,b} e contm a mesma quantidade de a e b }

e. { (ab)n ak | n >= k }

f. { w | w palavra da ling. com alfabeto {a,b} e contm quantidade par de a e par de b }

g. { an bk cn+k | n,k >= 0}

31) (POSCOMP, 2013)

32) (POSCOMP, 2011)

33) (POSCOMP, 2012)


Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 11 / 38
34) Faa uma Mquina de Moore para classificar operadores lgicos AND, OR e NOT (maisculos ou
minsculos), variveis formadas por letras minsculas e a palavra reservada if (minscula).
Defina a sua 7-upla de elementos.

ER para cada sada da mquina:


<OP-LOGICO> (a|A)(n|N)(d|D) | (o|O)(r|R) | (n|N)(o|O)(t|T)
<IF> if
<VAR> (a|...|z)+

Observe atentamente a caracterstica determinstica necessria para a mquina.


Exemplos de variveis possveis: a, an, anda, x, ifa
Observe ainda que a mquina no deve aceitar entradas como: Ax, Anda

35) Faa uma Mquina de Mealy sobre o alfabeto {0,1} para:

a. Ligar (1) ou desligar (0) uma mquina. Como o incio do funcionamento da mquina custoso, o
comando para ligar (1) deve ser repetido 3 vezes consecutivamente para que funcione. J o comando de
desligar (0) dado uma nica vez.

b. Devolver o bit lido com atraso de uma transio. Para o primeiro bit emita um 0.

Obs.: em todos os casos defina a sua 6-upla de elementos.

36) Faa uma mquina de estados finitos (decida entre Mquina de Moore e Mquina de Mealy) para representar
a venda de caf em um quiosque automatizado. O caf custa 60 centavos e a mquina aceita somente moedas
de 10, 50 centavos e 1 real. O caf feito automaticamente quando a mquina atinge crdito de 60 centavos.
Havendo troco, o mesmo entra como crdito para o prximo caf.

37) (POSCOMP, 2014)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 12 / 38


38) (POSCOMP, 2004)

39) (POSCOMP, 2011)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 13 / 38


40) (ENADE, 2008)

41) Faa uma gramtica livre de contexto (GLC) para cada uma das linguagens de nvel 2, ou seja, livres de
contexto.

a. { a2i b2i c2k | i >= 0, k >= 0 }

b. { ai bi ak bk | i >= 0, k >= 1 }

c. { ai bk ak bi | i,k >= 0}

d. { (ab)i c bi | i >= 0}

e. { ai ck b2i | i >= 1, k >= 0}

f. { ai ck bn | i=k ou k=n}

g. { ai bn | i diferente de n}

h. { ai bn | 0 <= i <= n <= 2i}

i. { ai+n bi cn | i,n >= 0}

j. palndromos mpares sobre {a,b}

k. strings sobre {a,b} com a mesma quantidade de a's e b's.

42) (POSCOMP, 2015)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 14 / 38


43) (POSCOMP, 2010)

44) (POSCOMP, 2002)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 15 / 38


45) A partir da gramtica fornecida, descreva, com preciso a linguagem gerada. Se a linguagem for regular, use a notao
de expresso regular para a represent-la. Considere letras maisculas como smbolos no terminais (variveis) e letras
minsculas como smbolos terminais.

a) S -> aS | bB |
B -> cB |

b) S -> aSb | aAb


A -> bAa |

c) S -> aSbb | A
A -> cA | c

d) S -> AAASb |
A -> a |

e) S -> aaSB |
B -> bB | b

46) (POSCOMP, 2003).

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 16 / 38


47) Crie uma gramtica livre de contexto para gerar uma lista de expresses aritmticas formadas apenas por nmeros
inteiros sem sinal de 20 a 99 e pelo operador de adio (as expresses so separadas por ponto e vrgula).

Assuma a existncia dos seguintes tokens:


<DGITO1> - representa exatamente um dgito de 0 a 9.
<DGITO2> - representa exatamente um dgito de 2 a 9.
<SOMA> - representa o caractere +.
<PT-VIRG> - representa o caractere ;.

Observe um exemplo de string que deve ser gerada pela gramtica:


23 + 44 + 99 ; 25 ; 51 + 20

48) (ENADE, 2008)

49) Elabore uma gramtica livre de contexto para gerar expresses com parnteses, colchetes e chaves balanceadas, as
quatro operaes bsicas, nmeros e variveis. Admita a existncia de tokens para representar cada um dos elementos
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 17 / 38
citados.

Observe exemplos de strings da linguagem:

[2*(4+3)], 100, {w-[3-5]+{4-(x-((y)))-1}-9}-8, valor+contador,

({[(2)]}), [2-{x-5}]

50) A partir do exerccio anterior, faa a seguinte modificao: parnteses, colchetes e chaves so opcionais, mas se eles
aparecerem na mesma expresso eles devem obedecer a seguinte ordem: parnteses (mais internos), colchetes e chaves
(mais externos).

Exemplos corretos:
[2*(4+3)], 100, {w-[3-5]+{4-(x-((y)))-1}-9}-8, valor+contador

Exemplos incorretos:
({[(2)]}), [2-{x-5}]

51) Desafio: no exerccio anterior, somente permita a ocorrncia de colchetes se houver parnteses internos, e chaves se
houver colchetes.

52) Desenvolva uma gramtica livre de contexto para gerar expresses aritmticas no estilo da linguagem LISP. Use
apenas nmeros inteiros sem sinal. Considere, para cada operao, exatamente dois operandos. Suponha a existncia de
tokens para os elementos que compem as expresses.
Exemplos: (+ 2 3)
(- (* 20 30) 4)
(+ (+ 1 4) (+ 3 (+ 3 5)))

53) Elabore uma gramtica para gerar declaraes de classes em Java. Assuma que o corpo da classe j est pronto.

Observaes:
Antes da palavra reservada class possvel aparecer um modificador de acesso: public, private ou
protected.
possvel a ocorrncia da palavra abstract (antes ou depois do modificador de acesso).
S pode haver uma classe Pai no caso de herana com extends, e vrios Pais em herana com implements
(herana mltipla). As clusulas extends e implements devem aparecer nesta ordem.
Classes interface s podem herdar de classes interface (devem usar a palavra implements). Neste caso, no
possuem modificador de acesso.

Observe quatro exemplos de strings desta linguagem:


public abstract class MinhaClasse { corpo }
public class MinhaClasse extends Pai1 implements Pai2,Pai3 {<corpo>}
abstract private class MinhaClasse extends Pai { <corpo> }
interface MinhaInterface { <corpo> }

54) Sobre ambigidade em gramticas livres de contexto, resolva as seguintes situaes:

a) Crie uma gramtica no ambgua para resolver o problema do else flutuante. Considere que um else sempre
pertence ao if mais prximo.
Por exemplo, no caso abaixo (com identao errada de forma proposital) o else pertence ao if(y>8)
Considere disponveis todos os tokens necessrios.

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 18 / 38


if(x>5)
if(y>8)
comando1;
else
comando2;

b) Prove que a gramtica a seguir ambgua.


Proponha uma gramtica equivalente no ambgua.

exp -> exp <OPER-ADIT> exp


| <ABRE-PAR> exp <FECHA-PAR>
| <NUM>

55) (POSCOMP, 2009)

56) Retire a recursividade esquerda e fatore (quando for possvel) os trechos de gramticas a seguir.
a) lista -> <IDENT> <VIRG> lista | <IDENT>

b) comandos -> comandos comando | <FIM>


comando -> <IDENT> <ATRIB> exp
| <IDENT> tipo
tipo -> <REAL> | <INT>
exp -> exp <OPERADOR> exp
| <ABRE-PAR> exp <FECHA-PAR>
| <NUM>
| <IDENT>

c) S -> aS | bS | cS | aA | aB | aC | bA | bB | bC

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 19 / 38


d) lista -> lista <VIRG> fim | lista <PT-VIRG> fim | fim

e) termo -> termo outro | fator <OP> | fator <OPCONT>

f) S -> AaB | AaS | a

g) S -> abB | aB | abC | abBC | ag | g | h

h) A -> Aa | b | c | Ad

i) S -> Sab | SA | aA | aS | c

j) exp -> exp <OP> exp | termo


termo -> <ABRE-PAR> exp <FECHA-PAR> | <NUM> | <IDENT>

57) Reescreva as gramticas na Forma normal de Chomsky e na Forma Normal de Greibach. Considere as letras
maisculas como smbolos no terminais e as minsculas como smbolos terminais.

a) S -> aS | Sb | c

b) E -> E o E | a E a | n

58) A partir da gramtica BNF do Pascal fornecida no anexo A desta lista de exerccios, responda os itens solicitados. No
use seu conhecimento sobre a linguagem Pascal. importante ressaltar que muitos erros que um compilador acusa so
provenientes do analisador semntico e que no poderiam ser detectados pela gramtica usada na anlise sinttica.

a) O comando for permite expresses com variveis em seus limites?


Exemplo: for x := y+1 to a*b do ...

b) A gramtica permite nmeros reais nos valores de limite de um comando for?


Exemplo: for x:= 2.5 to 8.5 do ...

c) A gramtica permite um for onde os valores inicial e final esto invertidos?


Exemplo: for x:= 10 to 5 do ...

d) A gramtica permite uma chamada aninhada nos ndices de um vetor?


Exemplo: Vetor[Valor[Codigo[x]]]

e) O ponto-e-vrgula antes do else proibido, obrigatrio ou facultativo?

f) A gramtica aceita diviso por zero em expresses aritmticas?

g) Os operadores DIV e MOD podem ser usados para nmeros reais?

h) possvel uma construo aninhada de BEGIN e END?


Se sim, analise como ficam as duas situaes abaixo, ou seja, verifique se o ponto-e-vrgula proibido, facultativo
ou obrigatrio:
Situao 1: BEGIN
BEGIN
x := x + 1;
END;
END;

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 20 / 38


Situao 2: BEGIN
BEGIN
x := x + 1;
END;
y := y + 2;
END;

i) possvel uma construo aninhada de WHILE?


Por exemplo: while Flag1 do
while Flag2 do
while Flag3 do
x := x + 1;

j) A estrutura while permite expresses condicionais contendo atribuies, tal como permitido na Linguagem C?
Exemplo: while x:=x+1 do ...

k) A estrutura while permite expresses contendo chamadas de funes?


Exemplo: while Verifica(x) do ...

59) Analise a gramtica do Java que segue no anexo B. Observe que ela usa um o formato BNF estendido (EBNF), ou seja,
o lado direito das regras usa os mesmos metasmbolos que so permitidos nas expresses regulares.

A seta substituda por um sinal de igual e os terminais so representados entre apstrofos, alm disso a regra completa
terminada por um ponto-e-vrgula.

Responda cada item abaixo a partir da anlise sobre esta gramtica.


a) Quantas classes podem ser herdadas com extends e com implements?
A linha de cdigo abaixo vlida?
class Monitor extends Aluno,Pessoa implements Funcionario, Cidado
possvel trocar de posio as palavras extends e implements?

b) No sintaxe do Java atual, o uso das chaves obrigatrio nos comandos de tratamento de erros catch e
finally, mesmo que exista apenas uma linha em seu corpo. Sendo que possvel vrios catch para um mesmo
try, mas apenas um finally.
Como a gramtica fornecida se comporta diante de tal situao?

Exemplo correto: Exemplo incorreto:


try { try {
... ...
} }
catch(Erro1 e) { catch(Erro1 e)
coisa1(); coisa1();
} catch(Erro2 e)
catch(Erro2 e) { coisa2();
coisa2(); finally
} coisa3();
finally {
coisa3();
}

c) Na declarao de uma funo em Pascal possvel usar a escrita de um mesmo tipo para vrios argumentos:
function FazAlgo(arg1,arg2:Integer; arg3,arg4:Real): UmTipo;
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 21 / 38
Existe possibilidade de fazer algo parecido em Java?

d) Existem vrias situaes nesta gramtica onde as regras poderiam ser simplesmente substitudas por expresses
regulares, ou seja, poderiam ser meramente tokens. Cite alguns casos em que isto ocorre, fornecendo em seguida a
respectiva expresso regular.

60) Refaa os exerccios 32 e 37 utilizando-se do recurso do formato BNF.

61) (ENADE, 2014)

62) Refaa os exerccios 32 e 37 utilizando-se do recurso do formato EBNF.

63) Faa uma gramtica no formato EBNF para gerar declarao de arrays multidimensionais em Pascal.

Formato geral:
lista_de_identificadores : array [li1..ls1, li1..ls1,..., li1..ls1] of tipo;

Exemplo de uma string da linguagem:


x,y,z : array [0..10,50..500] of Elemento;
Escreva duas solues: uma considerando a existncia de tokens j classificados, e outra partindo do zero, ou seja
usando os smbolos terminais diretamente na gramtica.

64) Reescreva cada gramtica a seguir no formato EBNF.

a) lista -> <IDENT> | <IDENT> <VIRG> lista

b) exp -> termo <ADD> exp


| termo <SUB> exp
| termo

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 22 / 38


termo -> <NUM> | <IDENT>

c) inicio -> <BEGIN> corpo <END> <EOF>


corpo -> declaraVar comandos
declaraVar -> <DECVAR> listaVar
listaVar -> <IDENT> | <IDENT> listaVar
comandos -> comando comandos | comando
comando -> atribuicao | se | enquanto | leia | exibe

d) declaraFuno -> <FUNCTION> <IDENT> parmetro <DOIS-PT>


<IDENT> <PT-VIRG> declaraVar corpoFuno
parmetro -> <ABRE-PAR> listaArgumentos <FECHA-PAR> |
listaArgumentos -> argumento <PT-VIRG> ListaArgumentos | argumento
argumento -> referncia defVar
referncia -> <VAR> |
defVar -> listaIdent <DOIS-PT> tipo
tipo -> <IDENT>
listaIdent -> <IDENT> <VIRG> listaIdent | <IDENT>
declaraVar -> | <VAR> listaDeclara
listaDeclara -> defVar <PT-VIRG> listaDeclara | defVar
corpoFunao -> blocoComandos

65) A partir da linguagem descrita a seguir, crie todos os tokens necessrios atravs de suas expresses regulares. Crie
tambm a gramtica livre de contexto no formato EBNF.

A seguinte linguagem descrita representa a Lgica Proposicional e trabalha com expresses proposicionais. Ela possui 4
comandos:

1. comando de atribuio:

varivel := expresso

2. comando de exibio:

out expresso_1, expresso_2, ..., expresso_n

3. comando de entrada de dados:

in varivel_1, varivel_2, ..., varivel_n

4. comando condicional:

if(expresso) {
comandos_1
}
else {
comandos_2
}

Os comandos de atribuio, exibio e de entrada de dados devem ser terminados por ponto-e-vrgula.

Os nomes das variveis so formadas por uma seqncia de letras minsculas e/ou dgitos. Mas, sempre devem iniciar
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 23 / 38
por letra.

A linguagem case-sensitive.

A expresso formada por parnteses balanceados, valores lgicos, variveis, operadores lgicos.

Os valores lgicos podem ser: 1, 0, v, f, verdadeiro, falso false, true


(observe que em alguns casos exige-se aspas).

Os operadores podem ser: v, ^, , ->, <->

Exemplos de programas aceitos:

in a;
out a;

in a, b,c;
out a ^ b, a v b, a -> c;

in a,b,c;
d := a ^ (b <-> c);
if(d) {
out d ^ a;
}
else{
out d ^ c;
}

a := "v";
b := "f";
c := a -> b;
out c,c ^ 1;

in a,b,c;
d := (b' v a) ^ ((b <-> c) v (c'' ^ a)')';
if(a ^ (b <-> c)) {
e := 1;
f := 0;
out d ^ a;
}
else{
if(d) {
e := 0;
}
else{
f := 1;
}
out d v a;
}
out e ^ f;

out "v" ^ "f" -> "true" <-> "false";

66) (ENADE, 2014)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 24 / 38


67) (POSCOMP, 2014)

68) (POSCOMP, 2008)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 25 / 38


69) De acordo com a Hierarquia de Chomsky, marque (3) para linguagem regular, (2) para linguagem livre de contexto e,
(1) para linguagem sensvel ao contexto, (0) para linguagem enumervel recursivamente.

a) ( ) Autmato finito com movimentos vazios.


b) ( ) Gramticas usadas na maioria das linguagens de programao conhecidas.
c) ( ) Autmato finito determinstico.
d) ( ) Autmato finito no determinstico.
e) ( ) Expresso regular.
f) ( ) Mquina de Turing.
g) ( ) { ai bi ci ; i > 0 }
h) ( ) Linguagens naturais.
i) ( ) { ai bn ci ; i,n > 0 }
j) ( ) Linguagem tipo 3
k) ( ) Linguagem tipo 2
l) ( ) Linguagem tipo 1
m) ( ) Linguagem tipo 0

70) Complete as frases usando conceitos adequados no contexto da Hieraquia de Chomsky.

a) ................................. um formalismo usado para denotar (representar) linguagens regulares.

b) ................................. um formalismo gerador (ou axiomtico) para linguagens regulares.

c) ................................. um formalismo reconhecedor para linguagens regulares.

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 26 / 38


d) ................................. um formalismo gerador (ou axiomtico) para linguagens livres de contexto.

e) ................................. um formalismo reconhecedor para linguagens livres de contexto.

f) ................................. um formalismo gerador (ou axiomtico) para linguagens sensveis ao contexto.

g) ................................. um formalismo reconhecedor para linguagens sensveis ao contexto.

h) ................................. um formalismo gerador (ou axiomtico) para ling. enumerveis recursivamente.

i) ................................. um formalismo reconhecedor para linguagens enumerveis recursivamente.

71) (POSCOMP, 2002)

72) (POSCOMP, 2007)

73) (ENADE, 2005)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 27 / 38


74) Enquadre, dentro da Hierarquia de Chomky, cada uma das linguagens a seguir como livre de contexto (L) ou (S)
sensvel ao contexto.
Aps a linguagem ter sido contextualizada no nvel apropriado, construa o formalismo gerador mais adequado (GLC -
gramtica livre de contexto, ou GSC - gramtica sensvel ao contexto), e desenhe a mquina abstrata referente ao
formalismo reconhecedor mais adequado (AP - autmato com pilha, ou MT - mquina de Turing).

a) ( ) { c an c bn c | n 0 }

b) ( ) { an bn | n 2 }

c) ( ) palndromos mpares sobre {a,b}

d) ( ) { ai bn ck | k = i+n }

e) ( ) { ai bn ck | n = i+k }

f) ( ) { a2i b2i c2k | i 0, k 0 }

g) ( ) { an bn cn dn | n1 }

h) ( ) { a2n b an a2n | n0 }

i) ( ) { ai bi ak bk | i 0, k 1 }

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 28 / 38


j) ( ) { an bk an bk | i 0, k 0 }

k) ( ) { ai bk ak bi | i,k 0}

l) ( ) { (ab)i c bi | i 0}

m) ( ) strings sobre {a,b} com a mesma quantidade de a's e b's.

n) ( ) { ai bn | i diferente de n}

o) ( ) { bb ai bb ai bb ai bb | i 1 }

p) ( ) { a2i bi c2i | i 0 }

q) ( ) { w c w | w uma string qualquer sobre {a,b} }

r) ( ) { w c w c w | w uma string qualquer sobre {a,b} }

75) (POSCOMP, 2015)

76) (POSCOMP, 2011)

77) (POSCOMP, 2012)

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 29 / 38


78) (POSCOMP, 2014)

79) (POSCOMP, 2016)

ANEXO A
SUDKAMP, Thomas A. Languages and machines: an introduction to the theory of computer science. 2. ed. Massachusets:
Addison-Wesley Publishing Company, Inc., 1997. Appendix III.

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 30 / 38


Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 31 / 38
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 32 / 38
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 33 / 38
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 34 / 38
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 35 / 38
ANEXO B
TITTEL, Ed; GAITHER, Mark. 60 minutos para aprender Java. So Paulo:Berkeley, 1996. Apndice B.

Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 36 / 38


Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 37 / 38
Exerccios de Ling. Formais e Autmatos prof. Henrique M. Cristovo 2017/1 pgina 38 / 38

Você também pode gostar