Computer Science › Algoritmos e Software

Linguagens Formais e Autômatos

0 de 17
  1. Gramáticas Livres de Contexto e Derivações

    Um conjunto de regras de produção, algumas referenciando a si mesmas, exatamente o formato autorreferencial já familiar da recursão, que geram cada string de uma linguagem uma substituição de cada vez.

    Ler →6 seções14 min
  2. Ambiguidade em Gramáticas

    Uma gramática é ambígua quando alguma string que ela gera tem mais de uma árvore de derivação válida, um problema real e prático para tudo que é construído sobre uma gramática, da precedência de operadores de uma calculadora ao parser de um compilador.

    Ler →6 seções13 min
  3. Forma Normal de Chomsky

    Toda gramática livre de contexto pode ser reescrita em uma forma onde cada regra tem exatamente um de dois formatos fixos, uma forma padronizada que viabiliza provas e algoritmos de parsing posteriores sem perder poder de geração.

    Ler →6 seções14 min
  4. Autômatos Finitos Determinísticos (DFA)

    Uma máquina com um conjunto finito de estados, sem memória além de qual estado ela ocupa, e exatamente uma transição por símbolo, o modelo formal de computação mais simples, e aquele que reconhece exatamente as linguagens regulares.

    Ler →6 seções13 min
  5. Autômatos Finitos Não-Determinísticos (NFA)

    Uma máquina à qual é permitido ter várias transições para o mesmo símbolo ao mesmo tempo, ou nenhuma, aceitando quando ALGUMA escolha de caminho leva à aceitação, uma regra mais frouxa que acaba não acrescentando poder real.

    Ler →6 seções15 min
  6. Autômatos de Pilha (PDA)

    Um NFA ao qual se dá exatamente um recurso extra, uma única pilha, que é precisamente a memória adicional suficiente para reconhecer toda linguagem livre de contexto, e nenhuma linguagem a mais.

    Ler →6 seções15 min
  7. Equivalência PDA-CFG

    Autômatos de pilha e gramáticas livres de contexto reconhecem exatamente a mesma classe de linguagens, dois formalismos de aparência muito diferente, um procedural e um generativo, que acabam sendo duas visões da mesma coisa.

    Ler →6 seções15 min
  8. Equivalência entre DFA e NFA: A Construção de Subconjuntos

    Todo NFA, por mais emaranhado que seu não-determinismo pareça, pode ser convertido em um DFA equivalente rastreando todo estado em que o NFA PODERIA estar simultaneamente como um único novo estado, um resultado genuinamente surpreendente, demonstrado aqui por completo.

    Ler →6 seções16 min
  9. Propriedades de Fechamento de Linguagens Regulares

    Combinar duas linguagens regulares com união, concatenação, ou estrela de Kleene sempre produz outra linguagem regular, um conjunto de garantias que tornam possível construir uma linguagem regular complexa a partir de peças simples, já conhecidas como regulares.

    Ler →6 seções15 min
  10. Expressões Regulares: Sintaxe e Semântica

    Uma notação compacta para descrever uma linguagem diretamente, construída a partir de símbolos únicos, concatenação, união, e repetição, o mesmo poder expressivo de um DFA, em uma forma que se lê como um padrão em vez de uma máquina.

    Ler →6 seções13 min
  11. Das Expressões Regulares aos Autômatos Finitos

    Construindo um NFA para uma expressão regular peça por peça, espelhando exatamente sua estrutura, a metade construtiva e direta do teorema de Kleene, provando que toda expressão regular tem um autômato equivalente.

    Ler →6 seções14 min
  12. O Lema do Bombeamento para Linguagens Regulares

    Toda linguagem regular tem um comprimento a partir do qual qualquer string longa o suficiente deve conter uma seção do meio repetível, um fato estrutural preciso e demonstrável cuja contrapositiva é a ferramenta padrão para provar que uma linguagem NÃO é regular.

    Ler →6 seções16 min
  13. O Lema do Bombeamento para Linguagens Livres de Contexto

    A mesma ideia de bombeamento, um nível acima na hierarquia de Chomsky, uma string suficientemente longa em uma linguagem livre de contexto precisa ter duas partes repetíveis, bombeadas juntas, dando uma ferramenta padrão para provar que uma linguagem nem sequer é livre de contexto.

    Ler →6 seções17 min
  14. De Autômatos Finitos para Expressões Regulares

    A direção mais difícil do teorema de Kleene, eliminar os estados de um DFA um de cada vez, construindo uma expressão regular que captura a mesma linguagem, até que reste apenas a própria expressão.

    Ler →6 seções14 min
  15. Aplicações Reais: Regex no Processamento de Texto, Gramáticas em Parsers

    Dois retornos cotidianos e extremamente conhecidos de tudo o que foi coberto até aqui: ferramentas de busca e substituição executando expressões regulares compiladas, e a própria sintaxe de uma linguagem de programação definida e analisada por uma gramática livre de contexto.

    Ler →6 seções14 min
  16. Dos Autômatos à Computação Geral

    Todo modelo coberto aqui (DFA, NFA, PDA) é fundamentalmente limitado: uma quantidade fixa de memória, ou memória com a forma de uma única pilha. A próxima disciplina remove esse limite por completo com a máquina de Turing.

    Ler →6 seções14 min

Linguagens Formais e Autômatos

Part of the Computer Science curriculum.

Sort
1

A Hierarquia de Chomsky

Quatro níveis aninhados de complexidade de gramática e linguagem (regular, livre de contexto, sensível ao contexto, e irrestrita) que organizam tudo o que o restante desta disciplina desenvolve com profundidade real para os dois primeiros.

2

Gramáticas Livres de Contexto e Derivações

Um conjunto de regras de produção, algumas referenciando a si mesmas, exatamente o formato autorreferencial já familiar da recursão, que geram cada string de uma linguagem uma substituição de cada vez.

3

Ambiguidade em Gramáticas

Uma gramática é ambígua quando alguma string que ela gera tem mais de uma árvore de derivação válida, um problema real e prático para tudo que é construído sobre uma gramática, da precedência de operadores de uma calculadora ao parser de um compilador.

4

Forma Normal de Chomsky

Toda gramática livre de contexto pode ser reescrita em uma forma onde cada regra tem exatamente um de dois formatos fixos, uma forma padronizada que viabiliza provas e algoritmos de parsing posteriores sem perder poder de geração.

5

Autômatos Finitos Determinísticos (DFA)

Uma máquina com um conjunto finito de estados, sem memória além de qual estado ela ocupa, e exatamente uma transição por símbolo, o modelo formal de computação mais simples, e aquele que reconhece exatamente as linguagens regulares.

6

Autômatos Finitos Não-Determinísticos (NFA)

Uma máquina à qual é permitido ter várias transições para o mesmo símbolo ao mesmo tempo, ou nenhuma, aceitando quando ALGUMA escolha de caminho leva à aceitação, uma regra mais frouxa que acaba não acrescentando poder real.

7

Autômatos de Pilha (PDA)

Um NFA ao qual se dá exatamente um recurso extra, uma única pilha, que é precisamente a memória adicional suficiente para reconhecer toda linguagem livre de contexto, e nenhuma linguagem a mais.

8

Equivalência PDA-CFG

Autômatos de pilha e gramáticas livres de contexto reconhecem exatamente a mesma classe de linguagens, dois formalismos de aparência muito diferente, um procedural e um generativo, que acabam sendo duas visões da mesma coisa.

9

Equivalência entre DFA e NFA: A Construção de Subconjuntos

Todo NFA, por mais emaranhado que seu não-determinismo pareça, pode ser convertido em um DFA equivalente rastreando todo estado em que o NFA PODERIA estar simultaneamente como um único novo estado, um resultado genuinamente surpreendente, demonstrado aqui por completo.

10

Propriedades de Fechamento de Linguagens Regulares

Combinar duas linguagens regulares com união, concatenação, ou estrela de Kleene sempre produz outra linguagem regular, um conjunto de garantias que tornam possível construir uma linguagem regular complexa a partir de peças simples, já conhecidas como regulares.

11

Expressões Regulares: Sintaxe e Semântica

Uma notação compacta para descrever uma linguagem diretamente, construída a partir de símbolos únicos, concatenação, união, e repetição, o mesmo poder expressivo de um DFA, em uma forma que se lê como um padrão em vez de uma máquina.

12

Das Expressões Regulares aos Autômatos Finitos

Construindo um NFA para uma expressão regular peça por peça, espelhando exatamente sua estrutura, a metade construtiva e direta do teorema de Kleene, provando que toda expressão regular tem um autômato equivalente.

13

O Lema do Bombeamento para Linguagens Regulares

Toda linguagem regular tem um comprimento a partir do qual qualquer string longa o suficiente deve conter uma seção do meio repetível, um fato estrutural preciso e demonstrável cuja contrapositiva é a ferramenta padrão para provar que uma linguagem NÃO é regular.

14

O Lema do Bombeamento para Linguagens Livres de Contexto

A mesma ideia de bombeamento, um nível acima na hierarquia de Chomsky, uma string suficientemente longa em uma linguagem livre de contexto precisa ter duas partes repetíveis, bombeadas juntas, dando uma ferramenta padrão para provar que uma linguagem nem sequer é livre de contexto.

15

De Autômatos Finitos para Expressões Regulares

A direção mais difícil do teorema de Kleene, eliminar os estados de um DFA um de cada vez, construindo uma expressão regular que captura a mesma linguagem, até que reste apenas a própria expressão.

16

Aplicações Reais: Regex no Processamento de Texto, Gramáticas em Parsers

Dois retornos cotidianos e extremamente conhecidos de tudo o que foi coberto até aqui: ferramentas de busca e substituição executando expressões regulares compiladas, e a própria sintaxe de uma linguagem de programação definida e analisada por uma gramática livre de contexto.

17

Dos Autômatos à Computação Geral

Todo modelo coberto aqui (DFA, NFA, PDA) é fundamentalmente limitado: uma quantidade fixa de memória, ou memória com a forma de uma única pilha. A próxima disciplina remove esse limite por completo com a máquina de Turing.