1 - Fundamentos

download 1 - Fundamentos

of 19

description

fundamentos automatos

Transcript of 1 - Fundamentos

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberIntroduoeCaptulo um: Fundamentos

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberA ningum que ama a linguagem pode agradar muito a perspectiva de estudar linguagens formais. Tem toda a pinta de ser algo abstrato e reducionista. Parece que toda a beleza transcendente da linguagem ser imolada, sacrificada sobre o calor seco das definies, teoremas e provas, at que nada reste, salvo as cinzas da sintaxe. Parece que se trata de um campo abstrato e assim , inegavelmente. E no entanto, dessa abstrao emergem algumas das ideias mais belas e duradouras em toda a cincia da computao.

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberPorqu estudar linguagens formais?Conecta-se......a muitos outros ramos do conhecimentoMatemtica......rigorosa, com muitas questes abertas em suas fronteirastil......com muitas aplicaes em sistemas de computao, particularmente nas linguagens de programao e compiladoresAcessvel......sem a necessidade de matemtica avanadaEstvel......os fundamentos no mudaram muito durante os ltimos trinta anos

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberOs tericos da lgebra usam as palavras grupo, anel e campo numa acepo tcnica bem especfica, ao passo que os entomologistas tm definies precisas de palavras comuns como besouro e mosca. Embora possa ser um tanto confuso sobrecarregar palavras comuns como essas, normalmente melhor faz-lo do que inventar novas palavras. assim que a maior parte das reas de pesquisa procede, dando definies rigorosas e contornos claros a palavras cujo sentido comum nebuloso, intuitivo.

    O estudo das linguagens formais no exceo. Usamos definies precisas e rigorosas para termos comuns, como alfabeto, cadeia, e linguagem.

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberSumrio1.1 Alfabetos1.2 Cadeias1.3 Linguagens

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberAlfabetosUm alfabeto qualquer conjunto finito de smbolos{0,1}: alfabeto binrio{0,1,2,3,4,5,6,7,8,9}: alfabeto decimalASCII, Unicode: alfabetos para textos maqunicosOu apenas {a,b}: suficiente para muitos exemplos{}: Um alfabeto que existe, mas no muito tilNormalmente usaremos como nome do alfabeto que de que estivermos tratando (como em = {a,b})

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberAlfabetos no interpretadosInformalmente, descrevemos as linguagens de modo interpretativo o conjunto dos nmeros binrios paresNossa meta, entretanto, descrev-los rigorosamente, o que implica evitar interpretaes o conjunto das cadeias de 0s e 1s que terminam em 0No definimos o que um smbolo, e no atribumos significado a eles

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberSumrio1.1 Alfabetos1.2 Cadeias1.3 Linguagens

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberCadeiasUma cadeia uma sequncia finita de zero ou mais smbolosComprimento de uma cadeia: |abbb| = 4Uma cadeia sobre o alfabeto significa uma cadeia cujos smbolos todos esto em O conjunto de todas as cadeias de comprimento 2 sobre o alfabeto {a,b} {aa, ab, ba, bb}

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberCadeia vaziaA cadeia vazia se escreve como "" em algumas linguagens de programao|| = 0No confundir conjunto vazio e cadeia vazia:{} {} {}

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberSmbolos e variveiss vezes usamos variveis como referncia a cadeias: x = abbbEm linguagens de programao, a sintaxe ajuda a distinguir smbolos de variveisString x = "abbb";Em linguagens formais, confiamos no contexto e em convenes de nomeao para diferenci-lasa, b, e c sero para ns smbolosx, y, and z, sero variveis

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberConcatenaoA concatenao de duas cadeias x e y a cadeia que contm todos os smbolos de x, em ordem, seguidos por todos os smbolos de y em ordemRepresentamos a concatenao apenas justapondo as cadeias concatenadasSe x = abc e y = def, ento xy = abcdefPara todo x, x = x = x

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberExpoentesUsaremos N para denotar o conjunto dos nmeros naturais: N = {0, 1, }O expoente n concatena uma cadeia consigo mesma n vezesSe x = ab, entox0 = x1 = x = abx2 = xx = abab, etc.Usamos parnteses para agrupar exponenciaes (supondo que no contenha os prprios parnteses)(ab)7 = ababababababab

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberSumrio1.1 Alfabetos1.2 Cadeias1.3 Linguagens

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberLinguagensUma linguagem o conjunto de cadeias sobre um determinado alfabetoNo esto restritas a conjuntos finitos de cadeias: na verdade, conjuntos finitos no costumam ser linguagens interessantesTodos os alfabetos so finitos, e todas as cadeias so finitas, mas a maior parte das linguagens que nos interessam so infinitas

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberO asterisco de KleeneO fecho de Kleene de um alfabeto , que se escreve *, a linguagem de todas as cadeias sobre {a}* o conjunto de todas as cadeias de zero ou mais smbolos a: {, a, aa, aaa, } {a,b}* o conjunto de todas as cadeias de zero ou mais smbolos, sendo cada um a ou b = {, a, b, aa, bb, ab, ba, aaa, }x * significa que x uma cadeia sobre Exceto com = {}, * infinito

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberFormadores de conjuntosUm conjunto descrito com condies ou restries adicionais que limitam os elementos do conjuntoNo a definio rigorosa que buscamos, mas uma notao til, em todo caso:{x {a, b}* | |x| 2} = {, a, b, aa, bb, ab, ba}{xy | x {a, aa} e y {b, bb}} = {ab, abb, aab, aabb}{x {a, b}* | x contm um a e dois bs} = {abb, bab, bba}{anbn | n 1} = {ab, aabb, aaabbb, aaaabbbb, ...}

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberVariveis livres em formadores de conjuntosA no ser que se defina explicitamente de outra forma, supe-se que os expoentes em um formador de conjunto cobrem todo o conjunto NExemplos{(ab)n} = {, ab, abab, ababab, abababab, ...}{anbn} = {, ab, aabb, aaabbb, aaaabbbb, ...}

  • Linguagens Formais, captulo 1, slide *Copyright 2007 por Adam WebberA buscaA notao dos formadores de conjuntos semi-formalPodem ser vagos, ambguos ou auto-contraditriosBoa parte da nossa busca no estudo de linguagens formais desenvolver melhores ferramentas para a definio de linguagens

    *