Upload
larissa
View
215
Download
0
Embed Size (px)
Citation preview
Linguagens Formais e Autômatos
Paulo Blauth Menezes
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
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
Linguagens Formais e Autômatos 4
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
Linguagens Formais e Autômatos 23
Regras de produção:
¾¾
move:
come:
mata:
Linguagens Formais e Autômatos 24
Grafo resultante da aplicação da regra move:
¾
2¾
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
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)
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
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
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