Linguagens Formais e Autômatos

Tamanho: px
Começar a partir da página:

Download "Linguagens Formais e Autômatos"

Transcrição

1 Prof. Diógenes Furlan Linguagens Formais e Autômatos Módulo VII BIBLIOGRAFIA BÁSICA Bibliografia HOPCROFT, John E. Introdução à teoria de autômatos, linguagens e computação. Rio de Janeiro: Elsevier; Campus, p. ISBN LEWIS, Harry R; PAPADIMITRIOU, Christos H. Elementos de teoria da computação. 2. ed. Porto Alegre, RS: Bookman, p. ISBN MENEZES, Paulo Blauth. Linguagens formais e autômatos. 4. ed. Porto Alegre, RS: Sagra Luzzatto, p. (Série Livros didáticos n.3) ISBN: VIII BIBLIOGRAFIA COMPLEMENTAR DIVERIO, Tiarajú Asmuz; MENEZES, Paulo Blauth. Teoria da computação: máquinas universais e computabilidade. 2. ed. Porto Alegre, RS: Sagra, p. (Série livros didáticos, 5) GERSTING, Judith. Fundamentos matemáticos para a ciência da computação. 4. ed. Rio de Janeiro: LTC, p. BROOKSHEAR, J. Glenn. Ciência da computação: uma visão abrangente. 5. ed. Porto Alegre, RS: Bookman, p. ISBN SEBESTA, Robert W. Conceitos de linguagens de programação. 5. ed. Porto Alegre, RS: Bookman, p. ISBN Capítulo 1

2 Noções de Linguagens 2 O que é uma Linguagem Formal? Inicialmente, de maneira bastante informal, podemos definir uma linguagem como sendo uma forma de comunicação. Elaborando um pouco mais esta definição, podemos dizer que uma linguagem é um conjunto de elementos (símbolos) e um conjunto de métodos (regras) que combinam estes elementos, e que são usados e entendidos por uma determinada comunidade. Exemplos: 1 Linguagens Naturais (ou idiomáticas). 2 Linguagens de Programação, de Controle, de Consulta. 3 Protocolos de Comunicação. Contudo, apesar de intuitiva, esta definição não nos permite responder satisfatoriamente à primeira pergunta; precisamos antes dar um sentido formal para a definição de linguagem. Conceitos Básicos Um Símbolo a,b,c,... 1 é um elemento de um conjunto, representado por algarismos (letras, caracteres, números,...). Um Alfabeto (ou vocabulário) é um conjunto finito, e não vazio, de símbolos. São exemplos de alfabetos 1 = {0,1} => o alfabeto binário 2 = {a,b,...,z} 3 = ASCII (Linguagem C) ASCII Alfabeto das expressões numéricas, com 4 operações básicas e parênteses balanceados = {(,),0,1,2,3,4,5,6,7,8,9,+,-,*,/} Uma Palavra (ou sentença ou string ou cadeia) x,y,w,... é uma sentença sobre um alfabeto A, é uma seqüência (ou cadeia) finita de símbolos do alfabeto justapostos por concatenação. Seja = {a,b} então a, b, aa, ab, aba,,... são palavras. Para a Linguagem C, for e void main() {} são palavras. A Palavra vazia é uma sentença constituída de nenhum símbolo; isto é, uma palavra de comprimento igual a 0 (zero). Representamos a sentença vazia por (épsolon). O Comprimento de uma palavra w : Seja w uma palavra. O tamanho (ou comprimento) desta sentença, denotado por w, é definido pelo número de símbolos que a compõem. Exemplos: Seja = {a,b,c} aba = 3 c = 1 = 0 1 Convenção para tipos de algarismos utilizados

3 A Concatenação. é uma operação binária que associa a cada par de símbolos uma palavra formada pela justaposição da primeira com a segunda. Seja x = e y = 110 então xy = e yx = 3 Elemento neutro: x. =.x = x Concatenação sucessiva (ou Potência de uma palavra): Seja w uma sentença. A concatenação de w consigo mesmo n vezes, pode ser representado por um exponencial: w n. Exemplos: seja x = 110 então x 1 = 110 x 2 = x 3 = OBS: 1) Para toda palavra x, x 0 =. 2) x R = reverso de x, ou seja, x escrito de trás para frente Potencias de um Alfabeto: Definimos k como o conjunto de strings de comprimento k sobre o alfabeto. Exemplos: seja = (0,1} 2 = 3 = 1 = 0 = Fechamento de um Alfabeto Seja um alfabeto. O fechamento reflexivo (ou simplesmente fechamento) de *, é dado pelo conjunto de todas as possíveis palavras que podem ser formadas a partir de, inclusive a sentença vazia. * O fechamento transitivo (ou fechamento positivo) de, é dado por - { }. Exemplos: Seja = {0,1}, temos que: * = {, 0, 1, 00, 01, 11, 000,...} + = {0, 1, 00,01, 11, 000,...} Uma Linguagem L sobre um alfabeto, é um subconjunto de * ; isto é, L (ou seja, é um conjunto de palavras ou de sentenças). Seja ={a,b} L 1 = L 2 = { } L 3 = {w w é palíndromo} = L 4 = * Um Dicionário, como o da língua portuguesa, também define uma linguagem (ou língua).

4 4 Linguagens e suas Representações O estudo de linguagens está intimamente relacionado ao estudo das formas de representação dessas linguagens. O problema de representação de uma linguagem, por sua vez, está relacionado com o fato de ela ser finita ou infinita: Linguagem Finita: É uma Linguagem que pode ser representada por enumeração. Exemplo: A linguagem definida como sendo o conjunto dos inteiros positivos pares maiores que 0 e menores que 20, pode ser representado por: L = {2, 4, 6, 8, 10, 12, 14, 16, 18}. Linguagem Infinita: Neste caso, na impossibilidade de usarmos enumeração, precisamos encontrar uma representação finita para estas linguagens. Exemplo: A linguagem definida como sendo o conjunto dos inteiros pares poderia ser representada por V ={2, 4, 6, 8, 10,...} que, apesar de intuitiva, não é finita e nem precisa. Conjuntos infinitos podem ainda ser classificados em contáveis (quando tem correspondência com os números naturais) ou incontáveis (quando tem correspondência com os números reais). As representações finitas de linguagens classificam-se em 3 tipos:*2 x é Natural Descritores são formalismos que representam os elementos de uma linguagem, descrevendo cada um deles usando uma notação matemática. São formalismos abstratos, para verificações matemáticas, como calculo proposicional, calculo de predicados, expressões regulares, entre outros. Reconhecedores São dispositivos formais que nos permitem verificar se uma determinada sentença pertence ou não a uma determinada linguagem (é uma representação das sentenças de uma linguagem sob o ponto de vista do reconhecimento de tais sentenças). Esses dispositivos denominam-se autômatos; autômatos finitos, autômatos de pilha e máquinas de Turing, por exemplo, podem ser destacados como importantes tipos de autômatos. Geradores São dispositivos formais dotados de mecanismos que permitem a geração sistemática das sentenças de uma linguagem (representação sob o ponto de vista da geração das sentenças de uma linguagem). Os principais sistemas geradores disponíveis são as gramáticas, dentre as quais, por exemplo, podemos destacar as gramáticas de CHOMSKY. Observações: Todo reconhecedor e todo sistema gerador pode ser representado por algoritmos e/ou procedimentos. Linguagens Formais: São linguagens que podem ser representadas de maneira finita e precisa através de sistemas com sustentação matemática (dispositivos formais ou modelos matemáticos), como os vistos acima. Exercícios 1) Quais dos seguintes conjuntos são alfabetos? a) números racionais não b) letras gregas c) algarismos arábicos d) 2 {a,b,c} e) {a,b,c} 3 f) números primos não

5 5 2) Mostre os prefixos e os sufixos de ) Dê alguns exemplos de palavras que pertencem (e que não pertencem) às seguintes linguagens, sendo ={a,b}: a) L = {w w 3 } b) L = {w para algum u, w = uau} c) L = {w para algum u, w = uu R u} u R reverso de u d) L = {w ww = www} e) L = {w para algum u, v *, uvw = wvu} f) L = {w para algum u *, www = uu} 4) Considerando a Linguagem C++, dê exemplos de: a) Símbolo do alfabeto b) Símbolo que não pertence ao alfabeto c) Palavra valida d) Palavra invalida 5) Qual símbolo da Linguagem C denota o elemento vazio? ou \0 6) Qual o significado de void na Linguagem C? tudo (nada) 7) O que é um Programa (segundo as definições vistas nessa aula)? Hierarquia de Chomsky A hierarquia de Chomsky consiste em quatro classes básicas de linguagens, classificadas segundo uma ordem de complexidade. Noam Chomsky 2 as definiu como potenciais modelos para linguagens naturais. LINGUAGENS ENUMERÁVEIS RECURSIVAMENTE - TIPO 0 LINGUAGENS SENSÍVEIS AO CONTEXTO TIPO 1 LINGUAGENS LIVRES DE CONTEXTO TIPO 2 LINGUAGENS REGULARES TIPO 3 2 Noam Chomsky, linguista e ativista político, é pesquisador do Massachusetts Institute of Technology (MIT), EUA. Em 1955, aos 27 anos, recebeu seu PhD em Linguística da Universidade da Pennsylvania. Aos 32 anos tornou-se professor-titular do MIT. Revolucionou a linguística nos anos 60 com sua teoria sobre a gramática gerativa. Entre seus trabalhos fundamentais sobre o tema estão Aspectos da teoria da sintaxe e Linguagem e mente. Em 1969, com o livro O poder americano e os novos mandarins, começou sua trajetória como ativista dos direitos civis e seu combate contra a intervenção dos EUA no Vietnã. Publicou cerca de 23 livros sobre política internacional e questões internas dos EUA.

6 6 Linguagens Regulares Classe de linguagens mais simples. Formalismos: Denotacional ou Descritor: Expressão Regular Operacional ou Reconhecedor: Autômato Finito Axiomático ou Gerador: Gramática Regular Linguagens Livre de Contexto Classe de linguagens que engloba as Linguagens Regulares. Formalismos: Operacional ou Reconhecedor: Autômato de Pilha Axiomático ou Gerador: Gramática Livre de Contexto Linguagens Sensíveis ao Contexto Classe de linguagens que engloba as Linguagens Livre de Contexto. Formalismos: Operacional ou Reconhecedor: Autômato Linearmente Limitado Axiomático ou Gerador: Gramática Sensível ao Contexto Linguagens Enumeráveis Recursivamente Classe de linguagens que engloba as Linguagens Sensíveis ao Contexto. Formalismos: Operacional ou Reconhecedor: Máquina de Turing Axiomático ou Gerador: Gramática Irrestrita

7 7 Capítulo 2 Expressões Regulares Uma Expressão Regular (ER) sobre um alfabeto é definida como segue: seja = ER(R) e = ER(S) LR ER (1) (2) { } (3) {a} a, a (4) R S (união) + (5) R x S (concatenação). ou (6) R* (fechamento) * Somente as 3 operações acima definem conjuntos regulares. Exemplos Para ={a,b}: 1) L = 2) L = { } 3) L = {a,b} = {a} {b} 4) L = {aa} = {a}x{a} 5) L = {a,b}x{b,c} 6) a* 7) a + 8) (a+b)* 9) (ab)* 10) b+a* 11) (b+a)* 12) ba* 13) (ba)* 14) (a+b*)* 15) a* + b* 16) a*.b* 17) (a+b) 2 18) (ab) 2 19) a 2.b 2 20) (a+b) 3 21) a ) a 3 b 4 Omissão de Parênteses (1) Como a união é associativa, pode-se escrever (r 1,r r n ) omitindo-se os parênteses internos (2) Idem para a concatenação (3) Parênteses externos podem ser omitidos (4) Prioridades: Fecho de Kleene (*) concatenação (.) união (+) Exemplos: ((a+(bb))+b) 1 (a+(bb)+b) 3 a+(bb)+b 4 a+bb+b ((ab)((aa)b)) 2 (abaab) 3 abaab a+(b(a)*) 4 a+ba*

8 8 Exercícios 23) Retire o máximo de parênteses das ER s seguintes, sem alterar seu significado: a) ((a+((a+b)a))+(bb)) a + (a+b)a + bb b) (((aa)+(b(bb*)))*((ab)((ab)(a+b)))) (aa+bbb*)*abab(a+b) c) (((aa)a+b)+((aa)+(a+(bb)))) aaa + b + aa + a + bb d) (((a)(a)+(ab))+((ba)+(b)(b)))*+(a(b(c))) aa + ab + ba + bb + abc 24) Verificar se a palavra dada pertence ao conjunto regular dado. a) aababaaab (a*b)* b) baaab ba* c) abaaabaa (a+b)*.a.a.(a+b)* d) ababbaa (b+ab)*aa(a+b)* //determinismo e) abbbabbb (b*a.b)*.(b.b+a*) f) bbbaabbb ((b*.a)*+a*.b.b) g) abbbaabab a.b*.b.a*.(b.b*.a) h) baaaabb (b.a*+b.b)*.(a*.b)* Lendo as propriedades das ER s a) (a+b)*aa(a+b)* b) (a+b)aa(a+b)* c) a*aa(a+b)* d) Todas as palavras iniciadas por exatamente 2 a s. Exercícios 25) Descreva, em português, as linguagens regulares sobre {a,b} denotadas pelas seguintes ER s: a) (a+b)*a g) (a+b)(a+b)(a+b).a.b b) (a+b)*aa(a+b)* h) a*.b.(a+b) c) a(a+b)*b i) (ab)*(a+ )+(ba)*(b+ ) d) a*(a+b)b* j) b*(abb*)*(a+ ) e) (a+ba)(a+b)* k) (a+ )(ba+b)* f) (a+b)*b(a+b)(a+b) Usando = {a,b} ou = {0,1}, mostre a ER dos seguintes conjuntos: 26) todas as palavras que contém bab 27) todas as palavras iniciadas por pelo menos 1 a 28) todas as palavras iniciadas por pelo menos 3 a s 29) todas as palavras iniciadas por exatamente 1 a 30) todas as palavras iniciadas por exatamente 3 a s 31) todas as palavras iniciadas por exatamente k a s, k>=1 e k<=10 32) todas as palavras iniciadas por a s 33) todas as palavras de comprimento maior ou igual a 3 34) todas as palavras de comprimento menor ou igual a 3 35) todas as palavras sem a 36) {101,1001,10001,100001,...} 37) todas as palavras onde cada 0 é seguido de dois 1. 38) todas as palavras contendo exatamente três 0s. 39) todas as palavras com número impar de a s 40) todas as palavras que não começam por aa 41) todas as palavras sem a sequencia ab 42) todas as palavras com número igual de a s e b s? (desafio)

9 9 Capítulo 3 Autômatos Finitos Um autômato finito (AF) ou (FA) é um modelo matemático de um sistema com entradas e saídas discretas. O sistema pode estar em qualquer uma de suas configurações internas, chamadas de estados. Estados contém informações relevantes a respeito do passado do sistema. Cada entrada causa uma mudança de estado, chamada de transição. Exemplos 1) Autômato que modela um interruptor liga/desliga. 2) Autômato que modela um elevador. 3) Autômato que modela o reconhecimento da palavra ELSE. Modelo de Maquina de Estados Fita de entrada a b a b a b cabeça de leitura controle finito Entrada: palavra (na fita). Saída: uma indicação informando se a entrada foi ou não considerada aceitável. Mudança de estado: depende somente do estado atual e do símbolo entrada. Restrição do modelo: completa falta de memória (somente a fita, que é imutável). Definição Formal Um autômato finito 3 (AF) é uma quíntupla (Q,A,,s,F) Q: conjunto de estados A: alfabeto de entrada : função de transição (define os estados do passo seguinte) s Q: estado inicial (somente um) F Q: conjunto de estados finais 3 Os autômatos finitos foram propostos originalmente para modelar a função do cérebro humano.

10 10 Representação da função de transição ( - delta) Gráfica q i símbolo q j Funcionamento Estado inicial: Estados finais: dois círculos Inicial Cabeça da fita: à esquerda Controle: aponta para o estado inicial Para cada passo: Cabeça da fita: lê um símbolo e move-se para direita Controle: muda de estado conforme função programa Condições de parada Palavra da Fita Função de Transição Enquanto processa símbolos Após processar o último da fita símbolo da fita Aceita - Estado atual é final Rejeitada Indefinida para o argumento Estado atual é não-final (estado atual x símbolo lido) Criando AF s a partir de ER s 1) ab(c+d) 2) (a+b)(a+b) 3) ab + ba 4) (ba)* 5) b*(a+b)a* 6) (aaa)* 7) aaa* 8) (a+b)*aa(a+b)* 9) a(ba)* 10) a(b+a)*b 11) ba(baa)* 12) a(ba+abb) 13) a(ba+abb)* 14) (ab + ba)ab 15) (a+b)*.b(a+b)(a+b) 16) (a+ )(ba+b)* 17) b*.(a.b*.a.b*)* Problemas com Loops: uso de transição nula obrigatório. 18) a*b* 19) a + (ba)*ab + 20) ab + b* 21) a*b*a* 22) a*(ba)*b* 23) a* + b* 24) Faça o autômato finito. Então verifique se a palavra pertence ou não. a) aababaaab (a*b)* b) baaab ba* c) abaaabaa (a+b)*.a.a.(a+b)* d) ababbaa (b+ab)*aa(a+b)* //determinismo e) abbbabbb (b*a.b)*.(b.b+a*) f) bbbaabbb ((b*.a)*+a*.b.b) g) abbbaabab a.b*.b.a*.(b.b*.a) h) baaaabb (b.a*+b.b)*.(a*.b)*

11 11 25) Palavras que contém bab. Mais Exercícios 26) Palavras iniciadas por pelo menos 2 a s. 27) Palavras iniciadas por exatamente 2 a s. 28) Palavras onde cada 0 é seguido de dois 1. 29) Palavras contendo exatamente dois 0s. 30) Palavras com comprimento maior que 2 símbolos. 31) Palavras com comprimento menor que 4 símbolos. 32) Palavras com número par de a s 33) b*(abb*)*(a+ ) 34) L = 35) Palavras terminadas em bb. 36) L = {w w possui aa ou bb como subpalavra} 37) Palavras iniciadas com número >= 1 de a s, seguido por qualquer numero >=2 de b s, seguido por a. 38) Palavras contendo a substring abba. 39) Todos os prefixos de aba. 40) Palavras sem aa 41) Palavras que não iniciam por bb. 42) Refazer o exercício 12 com OU exclusivo (se tiver aa não pode ter bb.

12 12 Autômato Finito Não Determinístico (NFA) A abordagem não determinística permite, para cada par (q, x), um numero qualquer de possíveis estados seguintes em. Cada uma destas possibilidades é tentada aleatoriamente e exaustivamente para a validação de uma entrada. São 3 casos: i) (q,x) = {q i } ii) (q,x) = {q i,q j,...q z } iii) (q,x) = Representação Tabular Símbolos do alfabeto (x)... Estados (q)... Teste de Mesa Deve aceitar qq palavra válida e rejeitar qq inválida. Exemplo 1) Para o FA que aceita a.b, verificar se as seguintes palavras são aceitas: ab: (q0,a)=q1 (q1,b)=q2 q2 F sim ba: (q0,b)=? não a: (q0,a)=q1 q1 F não Fita a b b a a Estados q0 q1 q2 q2 F q0?? q0 q1 q1 F 2) Palavras que contém a seqüência de símbolos aba. a b a a a b a a b b ? ? aceita aceita rejeita Exercícios 3) a*(a+b)b* Testar com a, aabb, e ba 4) a*b*a* Testar com aaa

13 13 Uso de Transições Nulas para Unificar NFA s (NFA- ) Transições podem ser usadas para se construir NFA s mais complexos, partindo-se de NFA s mais simples. Operações OBS: Ver quadro pagina 52 (livro Menezes). Exercícios 1) Construir o NFA que aceita palavras com qualquer quantidade de 0 s. 2) Seja L1 = ab e L2 = ba a) L1 + L2 b) L1. L2 c) L1* 3) Seja L1 = (a+b)*(aa+bb)(a+b)* e L2 = palavras sem aa a) L1 + L2 b) L2. L1 c) L1* 4) L = (b + a + ab * + ab * a) * 5) L = a*b*c* 6) Seja L1 = (a+b)*aa e L2 = a*b* a) L1 + L2 b) L2. L1 c) L2*

14 14 Eliminação de transições Algoritmo: Calcule o Fecho- para cada estado Fecho- (q) = {todos os estados onde pode levar transitivamente a partir de q} q Q, x A, seja D = (q,x). Substituir D por: se D vazio d D, d Fecho- (d) se D = vazio f Fecho- (q), se G= (f,x) vazio, g Fecho- (g), g G se G=vazio, vazio Resultado: Todos os estados são mantidos. Os estados que contiverem um elemento de F no Fecho- se tornam finais Exercícios 1) Palavras onde todos os a s antecedem todos os b s (a*b*). 2) Palavras onde todos os 0 s antecedem todos os 1 s e estes antecedem todos os 2 s (0*1*2*) 3) ab + b* 4) a*(ba)*b* 5) a*b*a* 6) 0*1*2*3* Seja L1 = (a+b)*(aa+bb)(a+b)* e 7) L1 + L2 8) L2. L1 9) L1* L2 = palavras sem aa (aula passada) 10) L = (b + a + ab * + ab * a) +

15 Autômato Finito Determinístico (DFA) 15 A mudança de estados segue uma regra única: para cada combinação de estado e símbolo de entrada (q Q, x A) não existe mais de uma possibilidade de escolha, sendo: totalmente determinístico (DFA-t): se existe uma e apenas uma possibilidade de escolha (completo); parcialmente determinístico (DFA-p): se existe uma ou nenhuma possibilidade de escolha. Funcionamento Condições de parada Palavra da Fita Aceita Rejeitada Função de Transição Após processar o último símbolo da fita Estado atual é final Estado atual é não-final Algoritmo para construir um DFA Método Direto Seja a linguagem cujas palavras contém a seqüência de símbolos ab em qualquer parte. i) Definir o estado inicial ii) Definir as transições mínimas iii) Completar todas as transições, uma a uma, com exemplos Exemplos 1) Palavras terminadas em ab. ={a,b}. fazer NFA e DFA e testar os 2 2) Palavras iniciadas em ab. estado morto 3) Palavras terminadas em bab. 4) Palavras com comprimento 2. 5) Palavras com comprimento par. 6) Palavras com numero par de a s. 7) Palavras iniciadas em 10. ={0,1,2}. 8) Palavras que têm abab como uma substring. 9) Palavras sem abab. 10) Palavras onde cada a é imediatamente seguido por um b. 11) Palavras onde cada a é imediatamente precedido por um b. 12) Palavras onde todos os a s antecedem todos os b s. 13) Palavras com tamanho igual ou maior a 3. 14) Palavras com no máximo dois símbolos. 15) Palavras que têm ab ou ba como substrings. 16) Palavras que têm ab e ba como substrings. 17) Palavras que não têm aa como uma substring. 18) Palavras com aa. 19) Palavras que não iniciam por bb. 20) Palavras com número de b s divisível por 3.

16 Transformação de NFA para DFA Método Indireto 16 Algoritmo: Seja K uma fila, q um estado, e (A,Q,,s,F) um FA insira s em K q = s faça para x como cada elemento de A insira (q, x) em K como um único estado r (e sem repetição) (q, x) = r q = próximo elemento de K até q = nulo Resultado: A = A Q = Todos os estados em K s = s F = Os estados que contiverem um elemento de F em seu nome Exemplos 1) Converter o seguinte NFA para DFA: NFA a b 1 {1} {2} 2 {1;3} {1;2} 3 {1} s = 1 F = 3 a b b a a,b b DFA a b Q = {1, 2, 12, 13} F = {13} 2) Uso do Estado MORTO a,b a 1 2 3) Converter o seguinte NFA para DFA: b NFA a b 1 {1;2} {2;3} 2 {3;4} 3 {1;2} {3} 4 {1;2;3} s = 1 F = {4}

17 17 Resposta: DFA a b Q = {1, 3, 12, 23, 34, 123, 234} F = {234, 34} Exercícios 1) Palavras terminadas em bb. A={a,b} 2) L = {w w possui aa ou bb como subpalavra} 3) Palavras contendo a substring abba. 4) Todas as palavras que iniciam com os prefixos de aba. morto 5) Palavras sem aa morto 6) Palavras que não iniciam por bb. morto 7) (aab + aba + baa).(a+b)* 8) Todas as palavras que terminam com os sufixos de aba. 9) Palavras que começam por ab e terminam por ba.

18 18 Operações sobre DFA s Combinação de DFA s Produto Cartesiano de DFA s (E Lógico) Sejam A e B dois DFA s na forma (A,Q,,s,F). O produto(a,b) é um DFA onde: A = A Q = Q A X Q B s = s A X s B F = F A X F B = (f a,f b ), se f a F A e f b F B = união de dos dois estados, para cada caso OU Lógico Idem produto cartesiano, porem F = {(f a,f b ), se f a F A ou f b F B } Negação de DFA s Deve-se fazer F = Q F, ou seja, inverte-se os estados finais com os não-finais. Exercícios 1) Palavras com número par de a s E número ímpar de b s. A={a,b} 2) Repetir para OU. 3) Palavras que têm um número ímpar de a s e um número par de b s. 4) Palavras que têm ab e ba como substrings. A={a,b}. 5) Palavras que têm ab OU ba como substrings. A={a,b}. 6) Palavras que contenham 101 em qualquer parte e numero par de 1 s. 7) Palavras com 011 em qualquer parte e numero impar de 0 s. A={0,1}. 8) Palavras de comprimento par e um numero divisível por 4 de 1 s. A={0,1}. 9) Palavras contendo 110 em qualquer pedaço e possuem um numero divisível por 4 de 0 s. A={0,1}. 10) Palavras com 00 e 11 em qualquer parte da palavra. A={0,1}. 11) Palavras com 01 e 100 em qualquer parte da palavra. A={0,1}. 12) Palavras com numero impar de a s e numero de b s que seja divisível por 3. A={a,b} 13) Palavras com numero ímpar de 1 s; numero não divisível por 3 de 0 s; e comprimento par. A={0,1}.

19 Minimização de Estados de DFA 19 Algoritmo: 1 a Fase: Eliminar estados inalcançáveis (aqueles em que não há caminho do estado inicial para ele no diagrama de estados do autômato) 2 a Fase: Encontrar estados equivalentes (a partir de qualquer um deles, precisamente as mesmas strings conduzem o autômato à aceitação) encontrar Classes de Equivalência. Algoritmo: encontrando Classes de Equivalência Seja (A,Q,,s,F) um FA separa-se F e Q-F em duas partições s 1 e s 2 x = um elemento de A faça para cada q em Q encontra-se a partição de (q, x) se dois estados em uma partição tem resultados diferentes, devem ser criadas novas partições de forma que somente estados com o mesmo resultado fiquem na mesma partição x = próximo símbolo de A até não haver criação de novas partições para cada símbolo Resultado: Q = Cada partição criada se torna um estado s = partição que contiver s F = partições formadas com elementos de F Exemplo 1) Minimizar o seguinte DFA: DFA a b s = 1 F = {1, 3, 7} a) Eliminação: 7 e 8 são inalcançáveis

20 20 Estados Alcançáveis Visitados 1 X X 2 X X 3 X X 4 X X 5 X X 6 X X 7 8 b) Equivalência: Partições iniciais: estados não-finais (s 0 ) e finais (s 1 ) s 0 :{ } s 1 :{1 3} a: s0 s1 s0 s1 s0 s0 Separam-se estados numa mesma partição que tiveram imagem diferentes: 2 e 5 de 4 e 6 s 0 :{2 5} s 1 :{4 6} s 2 :{1 3} b: s2 s0 s0 s0 s0 s0 s 0 :2 s 1 :5 s 2 :{4 6} s 3 :{1 3} a: s1 s1 s3 s3 s0 s0 b: s3 s1 s1 s1 s2 s2 A última tabela representa o autômato minimizado. Exercícios 2) s = 1 F = {8} DFA a b ) s = 1 F = {4} DFA a b ) Palavras que contém abba. (o de 8 estados) pag 17, ex 3 5) Palavras que contém ab e ba (o de 9 estados) pag 18, ex 4 6) Palavras que contém ab ou ba (o de 9 estados) pag 18, ex 5 7) Palavras que têm aa ou bb como substrings. A={a,b}.

Teoria da Computação Aula 02 Introdução

Teoria da Computação Aula 02 Introdução Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior. LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas

Leia mais

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra

Leia mais

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL:

Leia mais

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Introdução Definição Conceitos Básicos de Linguagem

Introdução Definição Conceitos Básicos de Linguagem Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

Modelos de Computação

Modelos de Computação Modelos de Computação 2.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0405/mc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues nas caixas

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar

Leia mais

Alfabeto, Cadeias, Operações e Linguagens

Alfabeto, Cadeias, Operações e Linguagens Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter

Leia mais

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Problemas de Decisão Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas

Leia mais

1 INTRODUÇÃO E CONCEITOS BÁSICOS

1 INTRODUÇÃO E CONCEITOS BÁSICOS 1 INTRODUÇÃO E CONCEITOS BÁSICOS Inicia com uma breve história do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computação é baseada. Formalização dos conceitos

Leia mais

IBM1088 Linguagens Formais e Teoria da

IBM1088 Linguagens Formais e Teoria da IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Introdução Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto M dos

Leia mais

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.

Leia mais

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda

Leia mais

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior. Máquinas Universais Máquina de Celso Olivete Júnior olivete@fct.unesp.br http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção

Leia mais

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018 22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria

Leia mais

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem LFA Aula 04 Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem Linguagens Formais Linguagens formais se preocupam com os problemas sintáticos das linguagens. Sintaxe e Semântica Sintaxe

Leia mais

Linguagens Formais - Preliminares

Linguagens Formais - Preliminares Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas

Leia mais

Linguagem (formal) de alfabeto Σ

Linguagem (formal) de alfabeto Σ Linguagem (formal) de alfabeto Σ Linguagem é qualquer subconjunto de Σ, i.e. qualquer conjunto de palavras de Σ Σ = {a, b} {aa, ab, ba, bb} ou {x x {a, b} e x = 2} {a, aa, ab, ba, aaa, aab, aba,...} ou

Leia mais

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens) Teoria das Lic. em Ciências da Computação Formais e Autómatos () Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Teoria das - LCC - 2010/2011 Dep. Matemática e Aplicações - Univ.

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018 27 de Fevereiro de 2018 Definição: Concatenação Sejam u, v Σ. A concatenação de u e v, denotado por uv é a operação binária sobre Σ assim definida (i) BASE: Se tamanho(v) = 0 então v = λ e uv = u. (ii)

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

Conceitos básicos de Teoria da Computação

Conceitos básicos de Teoria da Computação Folha Prática Conceitos básicos de 1 Conceitos básicos de Métodos de Prova 1. Provar por indução matemática que para todo o número natural n: a) 1 + 2 + 2 2 + + 2 n = 2 n+1 1, para n 0 b) 1 2 + 2 2 + 3

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo? 2 Linguagens Uma linguagem de programação, ou uma língua natural como o Português ou o Inglês, pode ser vista como um conjunto de sequências de símbolos, pertencentes a um conjunto finito. Em Português

Leia mais

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Pró-Reitoria de Ensino de Graduação Coordenação do Curso de Bacharelado em Sistemas de Informação Site: http://www.bsi.ufrpe.br E-mail: coordenacao@bsi.ufrpe.br

Leia mais

Expressões Regulares e Gramáticas Regulares

Expressões Regulares e Gramáticas Regulares Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira As Linguagens e os formalismos representacionais

Leia mais

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins Editor de Autômatos Finitos Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins 0 1 0 0 Roteiro da Apresentação Introdução Autômatos Finitos Desenvolvimento trabalho Considerações finais 2/31

Leia mais

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo Linguagens Formais e Autômatos Conceitos Básicos Prof. Anderson Belgamo Introdução Teoria das Linguagens Formais Originariamente desenvolvida na década de 1950. Objetivo inicial: desenvolver teorias relacionadas

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUGENS FORMIS E UTÔMTOS Introdução reve Histórico Em 1936, lan Turing (matemático) propôs a possibilidade de se construir um computador digital através da formalização de um procedimento em tempo finito.

Leia mais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Nome: Teoria da Computação Créditos: 4 60 horas Período: 2010.2 Horário: segundas e quintas das 20:40 às 22:20

Leia mais

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Doutorando em Ciência da Computação Estagiário em docência II Departamento de Ciência da Computação

Leia mais

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos Lista de Exercícios CT-200 Primeiro Bimestre 2010 Carlos Henrique Quartucci Forster Estagiário: Wesley Telles Revisão de Teoria de Conjuntos 1. Sejam A = {1,2 } e B = { x, y, z}. Quais os elementos dos

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João

Leia mais

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior. LFA Aula 01 Apresentação 24/10/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

a n Sistemas de Estados Finitos AF Determinísticos a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um

Leia mais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma 1 2º. Semestre de 2012 Prof. João Luís

Leia mais

Teoria da Computação Aula 01 Revisão de Conjuntos

Teoria da Computação Aula 01 Revisão de Conjuntos Teoria da Computação Aula 01 Revisão de Conjuntos Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Conjuntos Conjunto e uma estrutura que agrupa objetos e constitui uma base para construir estruturas

Leia mais

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema Conceitos Básicos Vocabulário Cadeias Linguagens Problema Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto. Ex: {A,B,C,.Z} alfabeto latino (maiúsculas)

Leia mais

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação Edital 04/2018/DCC/IM/UFRRJ Concurso de Monitoria Estudantil O Chefe

Leia mais

Autómatos Finitos Determinísticos (AFD)

Autómatos Finitos Determinísticos (AFD) Folha Prática Autómatos Finitos 1 Autómatos Finitos Determinísticos (AFD) 1. Determine e implemente computacionalmente um AFD que aceita todas as cadeias de cada uma das seguintes linguagens sobre o alfabeto

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Teoria da Computação Ciência da Computação

Leia mais

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Ficha 3 Autómatos Finitos Objectivos: Introdução ao conceito de Autómato Finito e notações utilizadas na sua representação;

Leia mais

Expressões e Gramáticas Regulares e Autómatos Finitos

Expressões e Gramáticas Regulares e Autómatos Finitos Folha Prática Expressões e Gramáticas Regulares e Autómatos Finitos 1 Expressões e Gramáticas Regulares e Autómatos Finitos Expressões Regulares e Autómatos Finitos 1. Determine e implemente computacionalmente

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Teoria da Computação Ciência da Computação

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1 Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional?

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional? capítulo 1 introdução A ciência da computação é o conhecimento sistematizado da computação. Sua origem é milenar, tendo se desenvolvido em diferentes regiões e épocas. A teoria da computação é a base fundamental

Leia mais

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação

Leia mais

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador

Leia mais

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo Linguagens Formais e Autômatos Linguagens Regulares Prof. Anderson Belgamo Linguagens Regulares Linguagens Regulares ou Tipo 3 formalismos operacionais ou reconhecedores Autômato Finito Determinístico

Leia mais

Linguagens, Reconhecedores e Gramáticas

Linguagens, Reconhecedores e Gramáticas Linguagens, Reconhecedores e Gramáticas Já vimos que Linguagem é um conjunto de cadeias de símbolos sobre um alfabeto/vocabulário, V. É um subconjunto específico de V*. Estas cadeias são denominadas sentenças

Leia mais

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior. LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior olivete@fct.unesp.br 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato

Leia mais

Máquinas de Turing - Computabilidade

Máquinas de Turing - Computabilidade BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma

Leia mais

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos Curso: Ciência da Computação Turma: 6ª Série Aula 3 Autômatos Finitos Alfabeto Alfabeto Conjunto finito de símbolos; Normalmente descrito por ; Exemplos: ={a, b} ={1, 2, 3} ={00, 11} Ø Alfabeto romano

Leia mais

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos

Leia mais

Histórico e motivação

Histórico e motivação Expressões regulares 1. Histórico e motivação 2. Definição a) Sintaxe b) Semântica c) Precedência dos operadores 3. Exemplos 4. Leis algébricas 5. Dialetos 6. Aplicações 7. Exercícios Pré-requisito: básico

Leia mais

Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares

Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares Linguagens Formais e Autômatos Expressões Regulares Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Expressões Regulares Até agora foram vistas

Leia mais

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

Leia mais

Modelos Universais de Computação

Modelos Universais de Computação Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)

Leia mais

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real. LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Matemáticos Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real. Ressalta-se contudo que é muito importante

Leia mais

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ). Alfabeto e palavras Alfabeto conjunto finito de símbolos (Σ). {A,...,Z}, {α, β,... }, {a,b}, {0,1}, ASCII Palavra de Σ sequência finita de símbolos do alfabeto Σ Σ = {a, b} aabba a aaaaaaaa Comprimento

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas da lista Sérgio Mariano Dias 1 1 UFMG/ICEx/DCC Entrega da 1 a lista: 31/03/2009 Sérgio Mariano Dias (UFMG) Fundamentos

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

BCC242. Auômato Finito Determinístico

BCC242. Auômato Finito Determinístico BCC242 Auômato Finito Determinístico Máquinas de Estados Finitos As máquinas de estados finitos são máquinas abstratas que capturam partes essenciais de algumas máquinas concretas. Tipos Tradutores máquinas

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Revisões de Conjuntos

Revisões de Conjuntos Revisões de Conjuntos {, {a}, {b}, {a, b}} a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, A subconjunto de B x A x B {a, b} {b, c, a} A B A

Leia mais

Aula1 Noções de matemática Discreta Técnicas de Demonstração. Prof. Dr. Ricardo Luis de Azevedo da Rocha

Aula1 Noções de matemática Discreta Técnicas de Demonstração. Prof. Dr. Ricardo Luis de Azevedo da Rocha Aula1 Noções de matemática Discreta Técnicas de Demonstração Prof. Dr. Ricardo Luis de Azevedo da Rocha Matemática Discreta seleção de tópicos de Matemática essenciais para o estudo da Ciência da Computação

Leia mais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas)

Leia mais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC-0505 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Lista de Exercícios do Capítulo 3 Gramáticas

Leia mais

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Linguagens e Autômatos

Linguagens e Autômatos 167657 - Controle para Automação Curso de Graduação em Engenharia de Controle e Automação Departamento de Engenharia Elétrica Universidade de Brasília Linguagens e Autômatos Geovany A. Borges gaborges@ene.unb.br

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 13 Autômato com Pilha humberto@bcc.unifal-mg.edu.br Última aula Linguagens Livres do Contexto P(S*) Recursivamente enumeráveis Recursivas

Leia mais

Teoria da Computação

Teoria da Computação Ciência da Computação Teoria da Computação (ENG10395) Profa. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com Máquinas Universais Máquinas Universais podem ser entendidas de duas formas: Se é capaz

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Proposta por Alan Turing em 1936; É universalmente conhecida e aceita como formalização de algoritmo; Teoria

Leia mais

Máquina de Turing. Controle finito

Máquina de Turing. Controle finito Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos

Leia mais

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000) Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade

Leia mais

SCC 205 Teoria da Computação e Linguagens Formais

SCC 205 Teoria da Computação e Linguagens Formais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um

Leia mais

Lista de exercícios 1

Lista de exercícios 1 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Lista de exercícios 1 Disciplina: Linguagens Formais e Autômatos Professora: Juliana Pinheiro

Leia mais

Máquina de Turing. Controle finito

Máquina de Turing. Controle finito Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos

Leia mais