Linguagens Formais e Autômatos
|
|
- Victorio Fagundes de Paiva
- 7 Há anos
- Visualizações:
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 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 maisLinguagens 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 maisLinguagens 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 maisLinguagens 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 maisINE5317 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 maisApostila 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 maisIntroduçã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 maisLinguagens 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 maisModelos 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 maisUNIVERSIDADE 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 maisAlfabeto, 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 maisLinguagens 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 mais1 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 maisIBM1088 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 maisLinguagens 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 maisLinguagens 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 maisConceitos 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 maisCOMPILADORES. 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 maisMá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 maisCompiladores. 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 maisUm 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 maisI.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 maisProf. 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 maisLFA. 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 maisLinguagens 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 maisLinguagem (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 maisTeoria 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 maisLinguagens 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 maisTeoria 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 maisProf. 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 maisLinguagens 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 maisConceitos 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 maisINE5317 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 maisProblema 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 maisPLANO 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 maisExpressõ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 maisINE5317 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 maisEditor 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 maisLinguagens 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 maisLINGUAGENS 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 maisDisciplina: 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 maisUNIVERSIDADE 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 maisCurso 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 maisFundamentos 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 maisLista 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 maisLinguagens 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 maisLINGUAGENS 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 maisLinguagens 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 maisa 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 maisUniversidade 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 maisTeoria 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 maisConceitos 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 maisApostila 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 maisLinguagens 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 maisMINISTÉ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 maisAutó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 maisUNIVERSIDADE 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 maisLicenciatura 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 maisExpressõ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 maisLinguagens 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 maisUNIVERSIDADE 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 maisApostila 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 maisLinguagens 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 mais1 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 maisMá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 maisLINGUAGEM 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 maisLinguagens 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 maisLinguagens, 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 maisLinguagens 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 maisMá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 maisCurso: 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 maisLFA 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 maisHistó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 maisExpressõ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 maisAula 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 maisModelos 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 maisLINGUAGENS 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 maisAlfabeto 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 maisFundamentos 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 maisLINGUAGENS 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 maisUNIVERSIDADE 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 maisBCC242. 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 maisProcedimentos 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 maisRevisõ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 maisAula1 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 maisLinguagens 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 maisMá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 maisUniversidade 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 maisMatemá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 maisLinguagens 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 maisUniversidade 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 maisTeoria 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 maisUNIVERSIDADE 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 maisMá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 maisTeoria 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 maisSCC 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 maisLista 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 maisMá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