26
Linguagens Formais e Autômatos Hisham Muhammad [email protected] PUC-Rio

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:

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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:

Linguagens Formais e Autômatos

Hisham [email protected]

PUC-Rio

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:

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:

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:

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:

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:

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:

"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:

"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:

"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:

"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:

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:

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:

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:

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:

...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:

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:

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:

...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:

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:

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:

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:

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:

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 24: 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:

Ferramental da disciplina

● JFLAP (http://www.jflap.org)

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:

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:

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