01 introducao e conceitos basicos

21
Matemática Discreta para Ciência da Computação - P. Blauth Menezes 1 Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS

Upload: computacao-depressao

Post on 25-Jun-2015

427 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 01   introducao e conceitos basicos

Matemática Discreta para Ciência da Computação - P. Blauth Menezes 1

Linguagens Formais eAutômatosP. Blauth Menezes

[email protected]

Departamento de Informática Teórica

Instituto de Informática / UFRGS

Page 2: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 2

Linguagens Formais e AutômatosP. Blauth Menezes

1 Introdução e Conceitos Básicos2 Linguagens e Gramáticas3 Linguagens Regulares4 Propriedades das Linguagens Regulares5 Autômato Finito com Saída6 Linguagens Livres do Contexto7 Propriedades e Reconhecimento das Linguagens

Livres do Contexto8 Linguagens Recursivamente Enumeráveis e

Sensíveis ao Contexto9 Hierarquia de Classes e Linguagens e Conclusões

Page 3: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 3

1 – Introdução e ConceitosBásicos

1.1 Introdução1.1.1 Sintaxe e Semântica1.1.2 Abordagem

1.2 Conjuntos, Relações e Funções1.3 Noções de Lógica1.4 Técnicas de Demonstração1.5 Indução

Page 4: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 4

1 – Introdução e Conceitos Básicos

Page 5: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 5

1.1 Introdução

◆ Teoria das Linguagens Formais

• desenvolvida na década de 1950• objetivo inicial

∗ desenvolver teorias relacionadas com as linguagens naturais

• entretanto, logo foi verificado que era importante∗ estudo de linguagens artificiais∗ em especial, para as linguagens originárias da Computação e

Informática

• desde então, desenvolveu-se significativamente

Page 6: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 6

◆ Exemplos de aplicações

• análise léxica e análise sintática de linguagens de programação• modelagem de circuitos lógicos ou redes lógicas• modelagem de sistemas biológicos• …

◆ Mais recentemente

• animações• hipertextos e hipermídias• linguagens não-lineares

∗ planares∗ espaciais∗ n-dimensionais

Page 7: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 7

1 – Introdução e ConceitosBásicos

1.1 Introdução1.1.1 Sintaxe e Semântica1.1.2 Abordagem

1.2 Conjuntos, Relações e Funções1.3 Noções de Lógica1.4 Técnicas de Demonstração1.5 Indução

Page 8: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 8

1.1.1 Sintaxe e Semântica

◆ Linguagens Formais

• problemas sintáticos das linguagens

◆ Importante apresentar os conceitos de

• sintaxe e semântica

◆ Historicamente, o problema sintático

• reconhecido antes do problema semântico• primeiro a receber um tratamento adequado• tratamento mais simples que os semânticos

Page 9: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 9

◆ Conseqüência

• grande ênfase à sintaxe• levando à idéia de que questões das linguagens de programação

∗ resumiam-se às questões da sintaxe

◆ Teoria da sintaxe possui construções matemáticas

• bem definidas e universalmente reconhecidas• exemplo: Gramáticas de Chomsky

Page 10: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 10

◆ Linguagem de programação (ou qq modelomatemático) pode ser vista como uma entidade

• livre, sem qualquer significado associado• juntamente com uma interpretação do seu significado

◆ Sintaxe

• trata das propriedades livres da linguagem• exemplo: verificação gramatical de programas

◆ Semântica

• objetiva dar uma interpretação para a linguagem• exemplo: significado ou valor para um determinado programa

Page 11: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 11

◆ Conseqüentemente, a sintaxe:

• manipula símbolos• sem considerar os seus correspondentes significados

◆ Mas, para resolver qualquer problema real

• necessário dar uma interpretação semântica aos símbolos• exemplo: estes símbolos representam os inteiros

◆ Sintaticamente "errado"

• não existe tal noção de programa• simplesmente não é um programa da linguagem

◆ Sintaticamente válido ("correto")

• pode não ser o programa que o programador esperava escrever

Page 12: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 12

◆ Programa "correto" ou "errado"

• se o mesmo modela adequadamente o comportamento desejado

◆ Limites entre a sintaxe e a semântica

• nem sempre são claros• exemplo: ocorrência de um nome em um programa• entretanto, em linguagens artificiais

∗ distinção entre sintaxe e semântica é (em geral) óbvia

◆ Análise léxica

• tipo especial de análise sintática• centrada nas componentes básicas da linguagem• portanto, também é ênfase das Linguagens Formais

Page 13: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 13

1 – Introdução e ConceitosBásicos

1.1 Introdução1.1.1 Sintaxe e Semântica1.1.2 Abordagem

1.2 Conjuntos, Relações e Funções1.3 Noções de Lógica1.4 Técnicas de Demonstração1.5 Indução

Page 14: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 14

1.1.2 Abordagem

◆ Centrada no tratamento sintático

• linguagens lineares abstratas• com fácil associação às linguagens da Computação e Informática

◆ Clasificação dos formalismos

• Operacional• Axiomático• Denotacional

Page 15: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 15

Operacional

◆ Autômato ou uma máquina abstrata

• estados• instruções primitivas• especificação de como cada instrução modifica cada estado

◆ Máquina abstrata

• suficientemente simples• para não permitir dúvidas sobre a execução de seu código

◆ Também é dito um formalismo Reconhecedor

• análise de uma entrada para verificar se é "reconhecida"

Page 16: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 16

◆ Principais máquinas

• Autômato Finito• Autômato com Pilha• Máquina de Turing

Page 17: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 17

Axiomático

◆ Associam-se regras

• às componentes da linguagem

◆ Regras permitem afirmar

• o que será verdadeiro após a ocorrência de cada cláusula• considerando-se o que era verdadeiro antes da ocorrência

◆ Também é dito um formalismo Gerador

• verifica se um elemento da linguagem é "gerado"

Page 18: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 18

◆ Abordagem é sobre Gramáticas

• Regulares• Livres do Contexto• Sensíveis ao Contexto• Irrestritas

Page 19: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 19

Denotacional

◆ Ou Funcional

◆ Define-se um domínio

• caracteriza o conjunto de palavras admissíveis na linguagem• funções, em geral, composicionais (horizontalmente)

∗ valor denotado por uma construção∗ especificado em termos dos valores denotados por suas

subcomponentes

◆ Abordagem restrita às Expressões Regulares

◆ Também é dito um formalismo Gerador

• é simples inferir ("gerar") as palavras da linguagem

Page 20: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 20

1 – Introdução e ConceitosBásicos

1.1 Introdução1.1.1 Sintaxe e Semântica1.1.2 Abordagem

1.2 Conjuntos, Relações e Funções1.3 Noções de Lógica1.4 Técnicas de Demonstração1.5 Indução

Page 21: 01   introducao e conceitos basicos

Linguagens Formais e Autômatos - P. Blauth Menezes 21

Linguagens Formais e AutômatosP. Blauth Menezes

1 Introdução e Conceitos Básicos2 Linguagens e Gramáticas3 Linguagens Regulares4 Propriedades das Linguagens Regulares5 Autômato Finito com Saída6 Linguagens Livres do Contexto7 Propriedades e Reconhecimento das Linguagens

Livres do Contexto8 Linguagens Recursivamente Enumeráveis e

Sensíveis ao Contexto9 Hierarquia de Classes e Linguagens e Conclusões