Linguagens Formais e Teoria da Computação - Introduçãobruno/uploads/Lectures/LFTCAula0.pdf ·...

56
Instituto de C Apresenta¸ ao Linguagens Formais e Teoria da Computa¸c˜ ao Introdu¸ ao Bruno Lopes Bruno Lopes Linguagens Formais e Teoria da Computa¸c˜ ao 1 / 18

Transcript of Linguagens Formais e Teoria da Computação - Introduçãobruno/uploads/Lectures/LFTCAula0.pdf ·...

Instituto de

C

Apresentacao

Linguagens Formais e Teoria da ComputacaoIntroducao

Bruno Lopes

Bruno Lopes Linguagens Formais e Teoria da Computacao 1 / 18

Instituto de

C

Apresentacao

Apresentacao

Em que perıodo estao?

O quanto sabem de programacao?

Quais linguagens?

O quanto sabem de unix?

O quanto sabem de logica?

Bruno Lopes Linguagens Formais e Teoria da Computacao 2 / 18

Instituto de

C

Apresentacao Introducao

Sobre o que e este Curso?

O que e uma Linguagem?

O que e Sintaxe?

O que e Semantica?

Como definimos uma linguagem?

Bruno Lopes Linguagens Formais e Teoria da Computacao 3 / 18

Instituto de

C

Apresentacao Introducao

Sobre o que e este Curso?

O que e uma Linguagem?

O que e Sintaxe?

O que e Semantica?

Como definimos uma linguagem?

Bruno Lopes Linguagens Formais e Teoria da Computacao 3 / 18

Instituto de

C

Apresentacao Introducao

Sobre o que e este Curso?

O que e uma Linguagem?

O que e Sintaxe?

O que e Semantica?

Como definimos uma linguagem?

Bruno Lopes Linguagens Formais e Teoria da Computacao 3 / 18

Instituto de

C

Apresentacao Introducao

Sobre o que e este Curso?

O que e uma Linguagem?

O que e Sintaxe?

O que e Semantica?

Como definimos uma linguagem?

Bruno Lopes Linguagens Formais e Teoria da Computacao 3 / 18

Instituto de

C

Apresentacao Introducao

Automatos

O que e uma Maquina Automatica?

O que e uma Maquina Programavel?

O que e um programa?

O que e uma Linguagem de Programacao?

Como o Computador “entende” uma Linguagem de Programacao?

Bruno Lopes Linguagens Formais e Teoria da Computacao 4 / 18

Instituto de

C

Apresentacao Introducao

Automatos

O que e uma Maquina Automatica?

O que e uma Maquina Programavel?

O que e um programa?

O que e uma Linguagem de Programacao?

Como o Computador “entende” uma Linguagem de Programacao?

Bruno Lopes Linguagens Formais e Teoria da Computacao 4 / 18

Instituto de

C

Apresentacao Introducao

Automatos

O que e uma Maquina Automatica?

O que e uma Maquina Programavel?

O que e um programa?

O que e uma Linguagem de Programacao?

Como o Computador “entende” uma Linguagem de Programacao?

Bruno Lopes Linguagens Formais e Teoria da Computacao 4 / 18

Instituto de

C

Apresentacao Introducao

Automatos

O que e uma Maquina Automatica?

O que e uma Maquina Programavel?

O que e um programa?

O que e uma Linguagem de Programacao?

Como o Computador “entende” uma Linguagem de Programacao?

Bruno Lopes Linguagens Formais e Teoria da Computacao 4 / 18

Instituto de

C

Apresentacao Introducao

Automatos

O que e uma Maquina Automatica?

O que e uma Maquina Programavel?

O que e um programa?

O que e uma Linguagem de Programacao?

Como o Computador “entende” uma Linguagem de Programacao?

Bruno Lopes Linguagens Formais e Teoria da Computacao 4 / 18

Instituto de

C

Apresentacao Introducao

Contexto da Ementa

Estudo de Linguagens sob o ponto de vista sintatico

Teoria e Fundamentos de Compilacao

Complexidade Computacional

Modelos de Computacao e Representacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 5 / 18

Instituto de

C

Apresentacao Introducao

Contexto da Ementa

Estudo de Linguagens sob o ponto de vista sintatico

Teoria e Fundamentos de Compilacao

Complexidade Computacional

Modelos de Computacao e Representacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 5 / 18

Instituto de

C

Apresentacao Introducao

Contexto da Ementa

Estudo de Linguagens sob o ponto de vista sintatico

Teoria e Fundamentos de Compilacao

Complexidade Computacional

Modelos de Computacao e Representacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 5 / 18

Instituto de

C

Apresentacao Introducao

Contexto da Ementa

Estudo de Linguagens sob o ponto de vista sintatico

Teoria e Fundamentos de Compilacao

Complexidade Computacional

Modelos de Computacao e Representacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 5 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Formativos

Projetar Gramaticas para Especificar Linguagens

Projetar Automatos para Reconhecer Linguagens

Classificar Linguagens Formais em funcao dos seusautomatos/gramaticas

Entender o papel do nao-determinismo na computacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 6 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Formativos

Projetar Gramaticas para Especificar Linguagens

Projetar Automatos para Reconhecer Linguagens

Classificar Linguagens Formais em funcao dos seusautomatos/gramaticas

Entender o papel do nao-determinismo na computacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 6 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Formativos

Projetar Gramaticas para Especificar Linguagens

Projetar Automatos para Reconhecer Linguagens

Classificar Linguagens Formais em funcao dos seusautomatos/gramaticas

Entender o papel do nao-determinismo na computacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 6 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Formativos

Projetar Gramaticas para Especificar Linguagens

Projetar Automatos para Reconhecer Linguagens

Classificar Linguagens Formais em funcao dos seusautomatos/gramaticas

Entender o papel do nao-determinismo na computacao

Bruno Lopes Linguagens Formais e Teoria da Computacao 6 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Informativos

Historia da Computacao

Limitacoes do processo computacional

Hierarquia de Chomsky

Hierarquia de Complexidade

Bruno Lopes Linguagens Formais e Teoria da Computacao 7 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Informativos

Historia da Computacao

Limitacoes do processo computacional

Hierarquia de Chomsky

Hierarquia de Complexidade

Bruno Lopes Linguagens Formais e Teoria da Computacao 7 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Informativos

Historia da Computacao

Limitacoes do processo computacional

Hierarquia de Chomsky

Hierarquia de Complexidade

Bruno Lopes Linguagens Formais e Teoria da Computacao 7 / 18

Instituto de

C

Apresentacao Objetivos do Curso

Objetivos Informativos

Historia da Computacao

Limitacoes do processo computacional

Hierarquia de Chomsky

Hierarquia de Complexidade

Bruno Lopes Linguagens Formais e Teoria da Computacao 7 / 18

Instituto de

C

Apresentacao Programa da Disciplina

A Hierarquia de Chomsky: Linguagens

Tipo 0

Decidıveis

Sens. Contexto

Livres de Contexto

Regulares

Bruno Lopes Linguagens Formais e Teoria da Computacao 8 / 18

Instituto de

C

Apresentacao Programa da Disciplina

A Hierarquia de Chomsky: Automatos

Maq. Turing D/ND

Auto. Linear Limitado ND

Auto. Linear Limitado D

Auto. Pilha ND

Auto. Pilha D

Auto. Finito D/ND

Bruno Lopes Linguagens Formais e Teoria da Computacao 9 / 18

Instituto de

C

Jogo Montando palavras

O jogo “Monta Palavras”:

Quantidade infinita de papel.

Sımbolos A, B, C.

Objetivo: formar palavras seguindo as regras...

Bruno Lopes Linguagens Formais e Teoria da Computacao 10 / 18

Instituto de

C

Jogo Montando palavras

O jogo “Monta Palavras”:

Quantidade infinita de papel.

Sımbolos A, B, C.

Objetivo: formar palavras seguindo as regras...

Bruno Lopes Linguagens Formais e Teoria da Computacao 10 / 18

Instituto de

C

Jogo Montando palavras

O jogo “Monta Palavras”:

Quantidade infinita de papel.

Sımbolos A, B, C.

Objetivo: formar palavras seguindo as regras...

Bruno Lopes Linguagens Formais e Teoria da Computacao 10 / 18

Instituto de

C

Jogo Montando palavras

Regras

(R.1) Voce pode escrever a cadeia AB.

(R.2) Se a cadeia termina em B, posso escrever nova cadeia composta dacadeia existente, seguida de um C.

(R.3) Se existe uma cadeia iniciada com A. A nova cadeia sera a cadeiaexistente seguida dos sımbolos apos o A inicial na ordem.

(R.4) Se existe uma cadeia contendo a sequencia BBB. A nova cadeiasera a cadeia existente onde BBB sera substituıda por C.

(R.5) Se existe uma cadeia contendo a sequencia CC. A nova cadeia seraa cadeia anterior sem esta sequencia.

Bruno Lopes Linguagens Formais e Teoria da Computacao 11 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Jogo Montando palavras

Perguntas

Como representar essas regras de uma forma mais “compacta”?

E possıvel escrever ACBC?

E possıvel escrever AC?

Quantas cadeias diferentes podem ser escritas?

E possıvel escrever alguma cadeia de mais de uma forma diferente?

E necessaria a compreensao do significado de cada elemento doalfabeto para construir uma cadeia?

E necessaria a compreensao do significado de uma cadeia para poderconstruı-la?

Existe algum metodo para decidir se uma cadeia pode ser gerada porestas regras?

Bruno Lopes Linguagens Formais e Teoria da Computacao 12 / 18

Instituto de

C

Teoria dos Conjuntos Introducao

Usada na especificacao de diversos domınios em matematica e ciencia

Um conjunto e uma colecao

Em geral um conjunto e definido por uma propriedade

A relacao de pertinencia e primitiva na Teoria de Conjuntos

Somente com o ∈ (“pertence a”) e Logica de Primeira Ordem,definem-se os principais conceitos de teoria dos conjuntos

Bruno Lopes Linguagens Formais e Teoria da Computacao 13 / 18

Instituto de

C

Teoria dos Conjuntos Introducao

Usada na especificacao de diversos domınios em matematica e ciencia

Um conjunto e uma colecao

Em geral um conjunto e definido por uma propriedade

A relacao de pertinencia e primitiva na Teoria de Conjuntos

Somente com o ∈ (“pertence a”) e Logica de Primeira Ordem,definem-se os principais conceitos de teoria dos conjuntos

Bruno Lopes Linguagens Formais e Teoria da Computacao 13 / 18

Instituto de

C

Teoria dos Conjuntos Introducao

Usada na especificacao de diversos domınios em matematica e ciencia

Um conjunto e uma colecao

Em geral um conjunto e definido por uma propriedade

A relacao de pertinencia e primitiva na Teoria de Conjuntos

Somente com o ∈ (“pertence a”) e Logica de Primeira Ordem,definem-se os principais conceitos de teoria dos conjuntos

Bruno Lopes Linguagens Formais e Teoria da Computacao 13 / 18

Instituto de

C

Teoria dos Conjuntos Introducao

Usada na especificacao de diversos domınios em matematica e ciencia

Um conjunto e uma colecao

Em geral um conjunto e definido por uma propriedade

A relacao de pertinencia e primitiva na Teoria de Conjuntos

Somente com o ∈ (“pertence a”) e Logica de Primeira Ordem,definem-se os principais conceitos de teoria dos conjuntos

Bruno Lopes Linguagens Formais e Teoria da Computacao 13 / 18

Instituto de

C

Teoria dos Conjuntos Introducao

Usada na especificacao de diversos domınios em matematica e ciencia

Um conjunto e uma colecao

Em geral um conjunto e definido por uma propriedade

A relacao de pertinencia e primitiva na Teoria de Conjuntos

Somente com o ∈ (“pertence a”) e Logica de Primeira Ordem,definem-se os principais conceitos de teoria dos conjuntos

Bruno Lopes Linguagens Formais e Teoria da Computacao 13 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Paradoxo do Barbeiro de Sevilha

Em Sevilha ha um unico barbeiro, o qual barbeia todas as pessoas destacidade que nao se barbeiam e somente essas.

Perguntas

Esse barbeiro se barbeia?

Esse barbeiro pode existir?

Bruno Lopes Linguagens Formais e Teoria da Computacao 14 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Paradoxo do Barbeiro de Sevilha

Em Sevilha ha um unico barbeiro, o qual barbeia todas as pessoas destacidade que nao se barbeiam e somente essas.

Perguntas

Esse barbeiro se barbeia?

Esse barbeiro pode existir?

Bruno Lopes Linguagens Formais e Teoria da Computacao 14 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Formalizando matematicamente. . .

B = {m/m e um homem que mora em Sevilha}f : B → 2B e a funcao que associa cada homem m ao conjunto f (m)o qual e barbeado por ele

Existe um homem h ∈ B tal que ele barbeia todos aqueles que nao sebarbeiam (e.g. S = {h/h /∈ f (h)})?

Que conjunto tem mais elementos?

Bruno Lopes Linguagens Formais e Teoria da Computacao 15 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Formalizando matematicamente. . .

B = {m/m e um homem que mora em Sevilha}f : B → 2B e a funcao que associa cada homem m ao conjunto f (m)o qual e barbeado por ele

Existe um homem h ∈ B tal que ele barbeia todos aqueles que nao sebarbeiam (e.g. S = {h/h /∈ f (h)})?

Que conjunto tem mais elementos?

Bruno Lopes Linguagens Formais e Teoria da Computacao 15 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Formalizando matematicamente. . .

B = {m/m e um homem que mora em Sevilha}f : B → 2B e a funcao que associa cada homem m ao conjunto f (m)o qual e barbeado por ele

Existe um homem h ∈ B tal que ele barbeia todos aqueles que nao sebarbeiam (e.g. S = {h/h /∈ f (h)})?

Que conjunto tem mais elementos?

Bruno Lopes Linguagens Formais e Teoria da Computacao 15 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Formalizando matematicamente. . .

B = {m/m e um homem que mora em Sevilha}f : B → 2B e a funcao que associa cada homem m ao conjunto f (m)o qual e barbeado por ele

Existe um homem h ∈ B tal que ele barbeia todos aqueles que nao sebarbeiam (e.g. S = {h/h /∈ f (h)})?

Que conjunto tem mais elementos?

Bruno Lopes Linguagens Formais e Teoria da Computacao 15 / 18

Instituto de

C

Teoria dos Conjuntos Paradoxos e numeros infinitos

Formalizando matematicamente. . .

B = {m/m e um homem que mora em Sevilha}f : B → 2B e a funcao que associa cada homem m ao conjunto f (m)o qual e barbeado por ele

Existe um homem h ∈ B tal que ele barbeia todos aqueles que nao sebarbeiam (e.g. S = {h/h /∈ f (h)})?

Que conjunto tem mais elementos?

Bruno Lopes Linguagens Formais e Teoria da Computacao 15 / 18

Instituto de

C

Linguagens Formais Conceitos

Conceitos Basicos

Alfabeto

Palavra

Concatenacao de palavras

Palavra vazia

Bruno Lopes Linguagens Formais e Teoria da Computacao 16 / 18

Instituto de

C

Linguagens Formais Conceitos

Propriedades de linguagens

Sejam duas linguagens quaisquer L1 e L2

L1 ◦ L2

L1 ∪ L2

L1 ∩ L2

L1 \ L2

L?1

Bruno Lopes Linguagens Formais e Teoria da Computacao 17 / 18

Instituto de

C

Linguagens Formais Conceitos

Propriedades de linguagens

Sejam duas linguagens quaisquer L1 e L2

L1 ◦ L2

L1 ∪ L2

L1 ∩ L2

L1 \ L2

L?1

Bruno Lopes Linguagens Formais e Teoria da Computacao 17 / 18

Instituto de

C

Linguagens Formais Conceitos

Propriedades de linguagens

Sejam duas linguagens quaisquer L1 e L2

L1 ◦ L2

L1 ∪ L2

L1 ∩ L2

L1 \ L2

L?1

Bruno Lopes Linguagens Formais e Teoria da Computacao 17 / 18

Instituto de

C

Linguagens Formais Conceitos

Propriedades de linguagens

Sejam duas linguagens quaisquer L1 e L2

L1 ◦ L2

L1 ∪ L2

L1 ∩ L2

L1 \ L2

L?1

Bruno Lopes Linguagens Formais e Teoria da Computacao 17 / 18

Instituto de

C

Linguagens Formais Conceitos

Propriedades de linguagens

Sejam duas linguagens quaisquer L1 e L2

L1 ◦ L2

L1 ∪ L2

L1 ∩ L2

L1 \ L2

L?1

Bruno Lopes Linguagens Formais e Teoria da Computacao 17 / 18

Instituto de

C

Linguagens Formais Conceitos

Quais seriam exemplos de Linguagens Formais?

Bruno Lopes Linguagens Formais e Teoria da Computacao 18 / 18