Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto:...
Transcript of Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto:...
![Page 2: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/2.jpg)
Sobre o professor
● Hisham H. Muhammad– MSc. em Informática pela PUC-Rio
– Doutorando na área de Linguagens de Programação
– Grupo do LabLua, Prof. Roberto Ierusalimschy● http://www.lua.inf.puc-rio.br
![Page 3: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/3.jpg)
O que é esta disciplina?
● Linguagens Formais e Autômatos
![Page 4: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/4.jpg)
O que é esta disciplina?
● Linguagens Formais e Autômatos– O que são linguagens?
– O que quer dizer "formal"?
– O que são autômatos?
![Page 5: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/5.jpg)
Teoria das linguagens formais
● Nasceu nos anos 1950 para tratar linguagens naturais
● Análise léxica, análise sintática...
Nós acreditamos sempre em dias melhores
Sujeito Predicado verbal
Adjuntoadverbial
Objeto indireto
Predicativo do objeto
Oração
![Page 6: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/6.jpg)
Teoria de linguagens formais
● Adotada no estudo de linguagens artificiais● Aplicações
– Análise léxica e sintática de linguagens de programação
● Parsers, compiladores
– Circuitos lógicos
– Animação
– Bioinformática
– etc...
![Page 7: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/7.jpg)
"Formal"
● Linguagens formais × informais?
![Page 8: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/8.jpg)
"Formal"
● Linguagens formais × informais?● Forma × função
– Forma: sintaxe
– Função: semântica
![Page 9: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/9.jpg)
"Formal"
● Linguagens formais × informais?● Forma × função
– Forma: sintaxe
– Função: semântica
● Linguagens formais são linguagens que têm uma forma bem-definida ("fórmula bem formada", matematicamente falando)– Ou seja, vamos tratar de sintaxe
![Page 10: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/10.jpg)
"Formal"
● Linguagens formais × informais?● Forma × função
– Forma: sintaxe
– Função: semântica
● Linguagens formais são linguagens que têm uma forma bem-definida ("fórmula bem formada", matematicamente falando)– Ou seja, vamos tratar de sintaxe
– ... mas linguagens formais também são menos "informais"
![Page 11: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/11.jpg)
Linguagens formais
● Alfabetos● Palavras● Gramáticas● Linguagens
block ::= {stat} [retstat]stat ::= ‘;’ | varlist ‘=’ explist | functioncall | break | do block end | while exp do block end | repeat block until exp | if exp then block {elseif exp then block} [else block] end | for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end | for namelist in explist do block end | function funcname funcbody | local function Name funcbody | local namelist [‘=’ explist] retstat ::= return [explist] [‘;’]funcname ::= Name {‘.’ Name} [‘:’ Name]varlist ::= var {‘,’ var}var ::= Name | prefixexp ‘[’ exp ‘]’ | prefixexp ‘.’ Name namelist ::= Name {‘,’ Name}explist ::= exp {‘,’ exp}exp ::= nil | false | true | Number | String | ‘...’ | functiondef | prefixexp | tableconstructor | exp binop exp | unop exp binop ::= ‘+’ | ‘-’ | ‘*’ | ‘/’ | ‘^’ | ‘%’ | ‘..’ | ‘<’ | ‘<=’ | ‘>’ | ‘>=’ | ‘==’ | ‘~=’ | and | orunop ::= ‘-’ | not | ‘#’
![Page 12: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/12.jpg)
Hierarquia de Linguagens Formais
● Noam Chomsky, 1956
![Page 13: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/13.jpg)
Hierarquia de Chomsky
Tipo 0: Gramáticas irrestritas
Tipo 1: Gramáticas sensíveis ao contexto
Tipo 2: Gramáticas livres de contexto
Tipo 3: Gramáticas regulares
![Page 14: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/14.jpg)
Hierarquia de Chomsky
Tipo 0: Linguagens recursivamente enumeráveis
Tipo 1: Linguagens sensíveis ao contexto
Tipo 2: Linguagens livres de contexto
Tipo 3: Linguagens regulares
![Page 15: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/15.jpg)
...e Autômatos
● Estudo dos dispositivos de computação abstratos, ou "máquinas"– Década de 1930, precede os computadores
● Da axiomatização da matemática (Russell, Whitehead)...– Prove que 1+1=2... 362 páginas
● ...surgiu a necessidade de definir o que é possível ou não de se fazer– ...matematicamente?
– ...mecanicamente?
![Page 16: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/16.jpg)
Autômatos
● Antes de nos perguntarmos sobre os limites fundamentais da computação, precisamos de modelos
● Modelo abstrato de máquina: diagrama de estados
off onInício
Liga
Desliga
![Page 17: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/17.jpg)
Relação com linguagens
![Page 18: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/18.jpg)
...e de fato:
Tipo 0: Máquina de Turing
Tipo 1: Autômato linearmente limitado
Tipo 2: Autômato de pilha
Tipo 3: Autômato de estados finitos
![Page 19: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/19.jpg)
e mais:
Máquina de Turing D/ND
Autômato linearmente limitado D (=?...)
Autômato de pilha ND
Autômato finito D/ND
Autômato de pilha D
Autômato linearmente limitado ND
![Page 20: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/20.jpg)
Diferença de abordagens
● Autômatos
– Abordagem operacional
– Máquinas abstratas com estados, instruções primitivas
– Permitem a análise de uma entrada para verificar se é "reconhecida" pela máquina
● Gramáticas
– Abordagem axiomática
– Associam-se regras aos componentes da linguagem
– Permitem verificar se uma cadeia pode ser "gerada" a partir dos axiomas
![Page 21: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/21.jpg)
LFA: Convergência de disciplinas
● Matemática discreta● Linguística formal● Computação teórica
![Page 22: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/22.jpg)
Objetivos do curso
● Formativos
– Projetar gramáticas para especificar linguagens
– Projetar autômatos para reconhecer linguagens
– Classificar linguagens formais em função dos seus reconhecedores e gramáticas
– Entender o papel do não-determinismo na computação● Informativos
– História da Computação
– Limitações do processo computacional
– Hierarquia de Chomsky
– Hierarquia de complexidade
![Page 23: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/23.jpg)
Programa da disciplina
● Alfabetos, cadeias e linguagens● Gramáticas, derivação, linguagem definida por
gramática● Linguagens regulares e autômatos finitos● Linguagens livres de contexto e autâmatos de pilha● Linguagens sensíveis ao contexto e autômatos
linearmente limitados● Linguagens recursivamente enumeráveis e
Máquinas de Turing● Decidibilidade e computabilidade
![Page 25: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/25.jpg)
Bibliografia
● Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011
● Referência: Hopcroft, Ullman & Motwani "Introdução à Teoria de Autômatos, Linguagens e Computação", 2.ed, Campus 2002
● Complementar: Apostila do Prof. José Lucas Rangel http://www.tecmf.inf.puc-rio.br/LFA
● Complementar: Notas complementares e material suplementar http://www.tecmf.inf.puc-rio.br/LFA
● Site desta turma, slides das aulas:
http://hisham.hm/puc-rio/lfa/
![Page 26: Linguagens Formais e Autômatoshisham.hm/puc-rio/lfa/aula1.pdf · 2013. 3. 5. · Livro texto: Paulo Blauth Menezes, "Linguagens Formais e Autômatos", 6.ed. Bookman 2011 Referência:](https://reader036.fdocument.pub/reader036/viewer/2022062416/6124204f6ef0613b3d4a74b3/html5/thumbnails/26.jpg)
Créditos e referências
● Slides do Prof. Hermann
– http://www.tecmf.inf.puc-rio.br/LFA?action=AttachFile&do=view&target=Aulas-LFA-1.pdf
● Slides da Profª. Clarisse
– http://www.inf.puc-rio.br/~inf1626/docs/Aula01-Introducao.pdf