29

Cap_09.pdf

  • Upload
    larissa

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cap_09.pdf

Linguagens Formais e Autômatos

Paulo Blauth Menezes

Page 2: Cap_09.pdf

Linguagens Formais e Autômatos 2

Linguagens Formais e Autômatos P. Blauth Menezes

1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens

Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e

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

Page 3: Cap_09.pdf

Linguagens Formais e Autômatos 3

9 - Hierarquia de Classes de Linguagens e Conclusões

9.1 Hierarquia de Chomsky

9.2 Conclusões

9.3 Leitura Complementar: Gramática de Grafos

Page 4: Cap_09.pdf

Linguagens Formais e Autômatos 4

Page 5: Cap_09.pdf

Linguagens Formais e Autômatos 5

9 - Hierarquia de Classes de Linguagens e Conclusões

9.1 Hierarquia de Chomsky Constituída pelas classes & inclusões próprias

Regulares ou Tipo 3 Livres do Contexto ou Tipo 2 Sensíveis ao Contexto ou Tipo 1 Recursivamente Enumeráveis ou Tipo 0

Page 6: Cap_09.pdf

Linguagens Formais e Autômatos 6

Figura 1.

Linguagens Regulares ouTipo 3

Linguagens Recursivamente Enumeráveis ou Tipo 0

Linguagens Livres do Contexto ou Tipo 2

Linguagens Sensíveis ao Contexto ou Tipo 1

Page 7: Cap_09.pdf

Linguagens Formais e Autômatos 7

Noam Chomsky definiu estas classes como (potenciais) modelos para linguagens naturais

Linguagens de programação

nem sempre são tratadas adequadamente na Hierarquia de Chomsky

Existem linguagens que não são livres do contexto, para as quais: poder dos formalismos sensíveis ao contexto é excessivo inadequados principalmente no que se refere à complexidade

Conhecimento das linguagens sensíveis ao contexto relativamente limitado dificulta o seu tratamento

Page 8: Cap_09.pdf

Linguagens Formais e Autômatos 8

Exemplos de problemas que não podem ser Livres do Contexto

múltiplas ocorrências de um mesmo trecho de programa como a declaração de um identificador e suas referências de

uso análogo a { wcw w é palavra de {a, b}* }

alguns casos de validação de expressões com variáveis de tipos diferentes

associação de um significado (semântica) de um trecho de programa análise de um conjunto de informações (dependentes de

contextos)

Page 9: Cap_09.pdf

Linguagens Formais e Autômatos 9

como identificadores, ambientes, tipos de dados, localização, sequências de operações, etc.

Para algumas linguagens de programação classe das Linguagens Livres do Contexto é excessiva

classe das Linguagens Regulares, insuficiente

Linguagem Livre do Contexto Determinística pode ser denotada por um Autômato com Pilha Determinístico

é possível implementar (facilmente) um reconhecedor com tempo de processamento proporcional a 2n n é o tamanho da entrada muito mais eficiente que o melhor algoritmo conhecido para as

linguagens livres do contexto

Page 10: Cap_09.pdf

Linguagens Formais e Autômatos 10

De qualquer forma, o estudo das Linguagens Livres do Contexto tem sido de especial interesse

permite uma representação simples da sintaxe adequada para estruturação formal e para análise computacional

Entretanto, o estudo das Linguagens Livres do Contexto tem mostrado problemas não solucionáveis

determinar se uma gramática é ambígua existem duas ou mais árvores de derivação distintas para uma

mesma palavra

não existe um algoritmo que verifique a igualdade de duas linguagens dificulta otimização e teste de processadores de linguagens

Page 11: Cap_09.pdf

Linguagens Formais e Autômatos 11

Portanto, dependendo da linguagem e dos objetivos do trabalho

estudos específicos eventualmente fora da Hierarquia de Chomsky são recomendados ou necessários

exemplo apresentado

Classe de Linguagens Recursivas

Page 12: Cap_09.pdf

Linguagens Formais e Autômatos 12

9 - Hierarquia de Classes de Linguagens e Conclusões

9.1 Hierarquia de Chomsky

9.2 Conclusões

9.3 Leitura Complementar: Gramática de Grafos

Page 13: Cap_09.pdf

Linguagens Formais e Autômatos 13

9.2 Conclusões Linguagens Formais oferecem meios para modelar e

desenvolver ferramentas que

especificam linguagens

processos de análise

propriedades

limitações algorítmicas

Page 14: Cap_09.pdf

Linguagens Formais e Autômatos 14

Alguns problemas possuem questões em aberto

tradução de linguagens, com ênfase nas naturais

explosão de estados dos autômatos finitos desenvolvimento de soluções (possivelmente) complexas exige um número excessivo de estados importante tema de pesquisa

tratamento de linguagens n-dimensionais, ênfase bi/tridimensionais imagens animações sistemas biológicos: simulação do desenvolvimento de

sistemas vivos, tanto no plano, quanto no espaço sistemas concorrentes (eventualmente distribuídos e/ou

comunicantes): especificação formal e prova de propriedades

Page 15: Cap_09.pdf

Linguagens Formais e Autômatos 15

Limitação do trabalho desenvolvido

formalismos desenvolvidos não são adequados para o tratamento de problemas complexos

não possuem construções composicionais em suas definições sem qualquer estruturação modular ou hierárquica

Algumas construções composicionais foram exploradas

união, intersecção, complemento, etc.

limitadas em termos de expressividade

Page 16: Cap_09.pdf

Linguagens Formais e Autômatos 16

Construções composicionais mais ricas: inspiradas em Teoria das Categorias

constituem uma álgebra sobre os formalismos com operações expressivas

desenvolvimento de soluções complexas de forma simples em grande parte dos casos, corretas por construção

abordagem: transcende o objetivo da disciplina importante linha de pesquisa para quem deseja dar

continuidade aos estudos

Page 17: Cap_09.pdf

Linguagens Formais e Autômatos 17

9 - Hierarquia de Classes de Linguagens e Conclusões

9.1 Hierarquia de Chomsky

9.2 Conclusões

9.3 Leitura Complementar: Gramática de Grafos

Page 18: Cap_09.pdf

Linguagens Formais e Autômatos 18

9.3 Leitura Complementar: Gramática de Grafos Uma abordagem às linguagens n-dimensionais

Ideia básica das gramáticas de grafos

análoga à das Gramáticas de Chomsky

Gramática de Grafos

regras de produção: pares, mas de grafos derivação: substituição de um subgrafo de acordo com uma regra de

produção

Page 19: Cap_09.pdf

Linguagens Formais e Autômatos 19

Gramáticas de grafos

caso particular das gramáticas categoriais

nenhum conceito de Teoria das Categorias é formalmente introduzido aqui

Page 20: Cap_09.pdf

Linguagens Formais e Autômatos 20

Gramáticas categoriais podem ser definidas sobre

palavras grafos conjuntos parcialmente ordenados redes autômatos máquinas linguagens de programação etc., desde que sejam satisfeitas determinadas condições

Adicionalmente, as derivações são generalizadas

Page 21: Cap_09.pdf

Linguagens Formais e Autômatos 21

¾

¾ 2

Exp: Gramática de Grafos: PacMan Jogo PacMan (simplificado)

tabuleiro PacMan conjunto de fantasmas conjunto de maçãs

Page 22: Cap_09.pdf

Linguagens Formais e Autômatos 22

“Palavra” da linguagem

nodos pretos lugares do tabuleiro

arestas caminhos possíveis entre dois lugares

PacMan, fantasmas e maçãs nodos com simbologia própria arcos denotam o posicionamento no tabuleiro

nodo branco maçã já comida fase em que se encontra o jogo (no caso, segunda fase)

Page 23: Cap_09.pdf

Linguagens Formais e Autômatos 23

Regras de produção:

¾¾

move:

come:

mata:

Page 24: Cap_09.pdf

Linguagens Formais e Autômatos 24

Grafo resultante da aplicação da regra move:

¾

Page 25: Cap_09.pdf

Linguagens Formais e Autômatos 25

Comparativamente com as gramáticas de Chomsky

em geral, não distinguem entre variáveis e terminais todos os símbolos (grafos) são tratados como terminais

possui símbolo inicial (grafo inicial)

linguagem gerada conjunto de grafos que podem ser gerados via derivações a

partir do grafo inicial

Page 26: Cap_09.pdf

Linguagens Formais e Autômatos 26

Exercício: Jogo da Velha

jogadas alternadas de dois jogadores condição de parada quando um dos jogadores completa uma linha

de três casas (horizontal, vertical ou oblíqua)

Page 27: Cap_09.pdf

Linguagens Formais e Autômatos 27

Exercício: Jogo de Damas

jogador com as pedras brancas inicia o jogo

Dica na definição da regra “comer uma pedra”, lembre-se de que o

movimento é sempre em “linha reta” não pode fazer uma “curva” de 90

o no tabuleiro

Page 28: Cap_09.pdf

Linguagens Formais e Autômatos 28

Linguagens Formais e Autômatos P. Blauth Menezes

1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens

Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e

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

Page 29: Cap_09.pdf

Linguagens Formais e Autômatos 29

Linguagens Formais e Autômatos P. Blauth Menezes

[email protected] Departamento de Informática Teórica

Instituto de Informática / UFRGS