Linguagem livre de contexto
Uma linguagem livre de contexto é uma linguagem formal que pode ser descrita por uma gramática livre de contexto.
Uma linguagem é livre de contexto se todas as suas palavras podem ser geradas por uma gramática desse tipo.
Características
-
Livre de contexto: O termo “livre de contexto” significa que, ao aplicar uma regra de produção (por exemplo, substituir uma variável
por uma sequência ), não é necessário considerar os símbolos vizinhos de . Isso diferencia as gramáticas livres de contexto das gramáticas sensíveis ao contexto, onde as regras dependem do contexto em que a variável aparece. -
Reconhecida por autômatos: Toda linguagem livre de contexto pode ser reconhecida por um autômato de pilha (pushdown automaton, PDA), que é um modelo computacional mais poderoso que os autômatos finitos, mas menos poderoso que as máquinas de Turing.
Exemplos Conhecidos
-
A linguagem das expressões aritméticas bem formadas, como
, onde os parênteses estão balanceados. -
A linguagem dos palíndromos, como
, onde é o inverso de . -
A linguagem
, que contém palavras com o mesmo número de s e s, na ordem (ex.: "", “ab”, “aabb”, “aaabbb”).
Exemplo prático
Vamos considerar a linguagem
- Variáveis:
- Terminais:
- Símbolo inicial:
- Regras:
Aqui,
- Para
: (palavra vazia). - Para
: . - Para
: .
Essa gramática gera todas as palavras da forma
Limitações
Nem todas as linguagens são livres de contexto. Por exemplo, a linguagem
Note
Isso pode ser comprovado usando o Lema do Bombeamento para linguagens livres de contexto.