Linguagens Formais e Autômatos -...

33
Linguagens Formais e Autômatos Andrei Rimsa Álvares Apresentação da Disciplina

Transcript of Linguagens Formais e Autômatos -...

Page 1: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

LinguagensFormaiseAutômatos

AndreiRimsaÁlvares

ApresentaçãodaDisciplina

Page 2: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Computação

•  HistóricodaComputação

•  Ábaco•  China•  Aprox.3500a.c.

•  MáquinadeBabbage•  Inglaterra•  1823

•  ENIAC•  EstadosUnidos•  1946

Oquepodesercomputado?

Page 3: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Computação

•  Oquepodesercomputado?–  Nãoimportaquantotemposejapreciso

–  Nãoimportaquantamemóriasejanecessária

•  Doquepodesercomputado,comomedirsuaeficiência?–  Oquepodesercomputadoeficientemente?

–  Háproblemasimportantesquenãoadmitemsoluçãoeficiente?

Comoresolverproblemas?

Page 4: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Algoritmos

•  Problemasdevemserresolvidosatravésdealgoritmos

Qualoproblemadeseusaraintuição?

•  Masoqueéumalgoritmo?–  Éumprocessofinitodeaçõesparaexecutarumadeterminadatarefa

•  Algoritmospossuemumpapelimportantenamatemá\ca–  Exemplo:algoritmodeEuclidesparacalcularMDC

•  AlgoritmossóforamdefinidosformalmentenoséculoXX–  Matemá\cosbaseavam-senanoçãointui\vadealgoritmo

Page 5: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Algoritmos

•  Omatemá\coDavidHilbertpropôs23problemas♣quenaépocanão\nhamsolução

•  O10ºproblemaeraumproblemacomputacional–  Encontrarum"algoritmo"capazdedeterminarseumpolinômiocomcoeficientesinteirospossuiraízesinteiras

–  Hojesesabequeessealgoritmonãoexiste•  Oproblemaéindecidível

Provarqueumalgoritmonãoexisterequerumadefiniçãoformaldoconceitodealgoritmo!

♣︎:hfps://pt.wikipedia.org/wiki/Problemas_de_Hilbert

Page 6: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Algoritmos

•  Adefiniçãoformaldealgoritmoveioapenasem1936,apar\rdetrabalhosdeChurch,TuringeGödel/Kleene

•  Definiuoconceitodealgoritmosatravésdanotaçãoλ-calculus

AlonzoChurch

Page 7: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Algoritmos

•  Adefiniçãoformaldealgoritmoveioapenasem1936,apar\rdetrabalhosdeChurch,TuringeGödel/Kleene

AlanTuring

•  Definiuoconceitodealgoritmosatravésdeumamáquina(MáquinadeTuring)

Page 8: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Algoritmos

•  Adefiniçãoformaldealgoritmoveioapenasem1936,apar\rdetrabalhosdeChurch,TuringeGödel/Kleene

•  Definiramaclassedasfunçõescomputáveiscomosendoaclassedasfunçõesrecursivasparciais

KurtGödel StephenKleene

Page 9: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

TeoriadaComputação

•  Oestudodateoriadacomputaçãoestárelacionadocomtrêsáreasfundamentais

ComputabilidadeAutômatos Complexidade

DisciplinaLFA

DisciplinaAED

Page 10: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

TeoriadaComputação

•  TeoriadosAutômatos

–  Dentrodessateoriasãoapresentadasmáquinasabstratasquecapturamaspartesessenciaisdemáquinasconcretas

–  Permiteestudaracomputaçãodeformasimples,sementrarnosdetalhesdearquiteturaquepodemprejudicaranoçãodecomputação

–  Mostraqueautômatosfinitossãobonsmodelosparacomputadorescomumaquan\dadeextremamentelimitadadememória,masqueaindaconseguemresolverumagrandequan\dadedeproblemas

Page 11: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

TeoriadaComputação

•  TeoriadaComputabilidade

–  Inves\gaopoderdosalgoritmosnaresoluçãodeproblemas

–  Apresentaumarcabouçoteóricopara•  Indicarproblemasquepodemserresolvidosporalgoritmos•  Indicarproblemasquenãopodemserresolvidosporalgoritmos

Page 12: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

TeoriadaComputação

•  TeoriadaComplexidade

–  Divideproblemascomputacionaisemduasclasses:fáceisedi?ceis•  Relacionadoscomasuacapacidadederesolveroproblemaemfunçãodasdimensõesdetempoeespaço

–  Estudaocomportamentodotempodeexecuçãodeumprogramaemfunçãodotamanhodesuaentrada

Crescimentoexponencialpodetornarumalgoritmoinu\lizávelparaproblemasdegrandeporte

Page 13: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Disciplina

•  LinguagensFormaiseAutômatos–  Sistemasderepresentação

•  Máquinasabstratas(Mecanismos)capazesdereconhecersistemasderepresentação(Reconhecedores)

•  Correspondênciaentresistemasderepresentaçãoereconhecedores

–  Noçõesgeraissobrecondiçõesdeprocessamentodossistemasderepresentação•  Limitesdecomputabilidade•  Complexidadedeprocessamento

Paraqueéimportanteestudarisso?

Page 14: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Disciplina

•  Aplicações

ProcessadoresdeTexto Compiladores

LinguagensdeProgramação ProjetosdeHardware/Souware

Page 15: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Disciplina

•  Ferramentadeapoio

•  JFLAPv7.0•  hfp://jflap.org

Page 16: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Disciplina

•  Curiosidade

MáquinadeTuringfeitadeLego♣︎

AndersNissen

♣︎:hfps://www.youtube.com/watch?v=cYw2ewoO6c4

Page 17: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

LinguagensdeProgramação

EMENTA,AVALIAÇÕES,REGRAS

Page 18: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  Ocursoédivididoemquatromódulos

Ementa

1)  Máquinasdeestadosfinitos(LinguagensRegulares–LR's)

2)  Autômatoscompilha(LinguagensLivresdeContexto–LLC's)

3)  MáquinasdeTuring(LinguagensSensíveisaoContexto–LSC's,LinguagensRecursivas–LR's,LinguagensRecursivamenteEnumeráveis–LRE's)

4)  Decidibilidade

Page 19: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  Máquinasdeestadosfinitos

Ementa

•  AutômatosFinitosDeterminís\cos(AFD)–  MinimizaçãodeAFDS–  Propriedades

•  AutômatosFinitosNão-Determinís\cos(AFN)–  EquivalênciaentreAFD'seAFN's–  AFNestendido

Page 20: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  Máquinasdeestadosfinitos

Ementa

•  ExpressõesRegulares

•  Gramá\casRegulares

•  Propriedades–  Lemadobombeamento–  Propriedadesdefechamento

Page 21: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  Autômatoscompilha

Ementa

•  AutômatoscomPilhaDeterminís\cos(APD)

•  AutômatoscomPilhaNão-Determinís\cos(APN)

Page 22: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  Autômatoscompilha

Ementa

•  Gramá\casLivresdeContexto(GLC's)–  DerivaçõeseAmbiguidades–  Manipulaçãodegramá\cas–  Formasnormais(ChomskyeGreibach)–  Transformaçõesde/paraAP

•  Propriedades–  Lemadobombeamento–  Propriedadesdefechamento

Page 23: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  MáquinasdeTuring

Ementa

•  MáquinasdeTuringDeterminís\cas–  VariaçõesdeMáquinasdeTuring

•  MáquinasdeTuringNão-Determinís\cas

•  Gramá\caseMáquinasdeTuring

Page 24: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

•  Decidibilidade

Ementa

•  ProblemasIndecidíveis–  ProblemadaParada

•  ProblemasdeDecisão

Page 25: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

HierarquiadeChomsky

LinguagensRecursivamenteEnumeráveis

LinguagensRecursivas

LinguagensSensíveisaoContexto

LinguagensLivresdeContexto

LinguagensRegulares

AFDeAFNGRER

APDeAPNGLC

Ƿ(Σ∗)

ALLGSC

MTGI

Page 26: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Avaliações

•  Prova1–  Pontuação:25pts–  Data:10/04/2018

•  Prova2–  Pontuação:25pts–  Data:17/05/2018

•  Prova3–  Pontuação:25pts–  Data:21/06/2018

•  ProvaSuplementar–  Pontuação:25pts–  Data:28/06/2018

•  ProvaEspecial–  Pontuação:100pts–  Data:03/07/2018

Page 27: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Avaliações

•  Listasdeexercícios–  Pontuação:15pts–  Data:umasemanaapósaaulasobreotemadado

•  Trabalho–  Pontuação:10pts–  Data:adefinir

Page 28: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Regras

•  Apresençaéobrigatóriaem75%dasaulas–  Emtodasasaulashaveráchamada–  Nãohaveráabonodefaltas,salvooscasosprevistosporlei

•  Aprovaéindividualesemconsulta–  Apósoiníciodaprova,deve-seesperarnomínimo30minutosantesdeentregaraprova

–  Colasserãopenalizadascomnotazero

•  Trabalhoscopiados,parcialmenteouintegralmente,decolegas,dainternetoudequalqueroutrafonteserãoavaliadoscomnotazero

•  Listasdevemserfeitasàmãoeentreguesantesdoiníciodasaulas

Page 29: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Estudem!

Page 30: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

LinguagensFormaiseAutômatos

BIBLIOGRAFIA

Page 31: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Bibliografia

•  VieiraN.•  IntroduçãoaosFundamentos

daComputação•  1aedição,2006

•  HopcrouJ.,MotwaniR.UllmanJ.•  Introduc\ontoAutomataTheory,

Languages,andComputa\on•  3aedição,2006

Page 32: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

Bibliografia

•  SipserM.•  Introduc\ontotheTheory

ofComputa\on•  3aedição,2012

•  Sudkamp,T.•  LanguagesandMachines:An

Introduc\ontotheTheoryofComputerScience

•  3aedição,2005

Page 33: Linguagens Formais e Autômatos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~rimsa/documents/decom035/lessons/Aula00.… · um programa em função do tamanho de sua entrada Crescimento

LinguagensFormaiseAutômatos

ISSOÉTUDOPESSOAL!