Linguagem livre de contexto

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Na teoria de linguagens formais, uma linguagem livre de contexto é uma linguagem gerada por alguma gramática livre de contexto. O conjunto de todas as linguagens livres de contexto é idêntico ao conjunto de linguagens aceitas por um autômato de pilha.[1] De acordo com a Hierarquia de Chomsky, linguagens livres de contexto são Tipo-2.

Índice

[editar] Aplicações

Tais linguagens são importantes para definir linguagens de programação.[1] Por exemplo, as linguagens que requerem o balanceamento de parênteses são geradas pela gramática S\to SS ~|~ (S) ~|~ \lambda. Da mesma forma, a maioria das expressões aritméticas é gerada por gramáticas livres de contexto.

[editar] Exemplos

Uma linguagem livre de contexto é L = \{a^nb^n:n\geq1\}, a linguagem de todas as cadeias de caracteres não vazias de tamanho par, as primeiras metades sempre preenchidas com "a"s e as segundas metades sempre preenchidas com "b"s. L é gerada pela gramática S\to aSb ~|~ ab, e é aceita pelo autômato de pilha M = ({q0,q1,qf},{a,b},{a,z},δ,q0,{qf}), em que δ é definido da seguinte forma:

δ(q0,a,z) = (q0,a)
δ(q0,a,a) = (q0,a)
δ(q0,b,a) = (q1,x)
δ(q1,b,a) = (q1,x)
δ(q1,b,z) = (qf,z)

δ(estado1,leitura,desempilha) = (estado2,empilha)

Em que z é a pilha de símbolos inicial e x significa desempilhar.

[editar] Propriedades de fechamento

Linguagens livres de contexto são fechadas nas seguintes operações. Se L e P são linguagens livres de contexto e D é uma linguagem regular, as seguintes linguagens também são livres de contexto:[2]

Linguagens livres de contexto não são fechadas em complemento, interseção ou diferença.

[editar] Propriedades de decisão

Os seguintes problemas são indecidíveis para quaisquer gramáticas livres de contexto A e B:

  • L(A) = L(B)?
  • L(A) \cap L(B) = \emptyset  ?
  • L(A) = Σ *  ?
  • L(A) \subseteq L(B) ?

Os seguintes problemas são decidíveis para quaisquer linguagens livres de contexto:

  • L(A)=\emptyset?
  • L(A) é finito?
  • Dada a palavra w, w \in L(A)?

[editar] Decidindo se uma linguagem é ou não livre de contexto

[editar] Teorema da iteração para linguagens livre de contexto

Se L é uma linguagem livre de contexto, então existe um n tal que para todo sL tal que |s| ≥ n, s pode ser reescrito da forma uvxyz, |vxy| > 0 e |vxy| ≤ n, tal que ∀ i, i ≥ 0 uvixyizL


Referências

  1. a b David Déharbe (2003). Gramáticas livres de contexto. Página visitada em 23 de agosto de 2008.
  2. CS 273: Closure Properties for Context-Free Languages (em inglês). Universidade de Illinois em Urbana-Champaign. Página visitada em 23 de agosto de 2008.
  3. a b c Context-Free Grammar (em inglês). Old Dominion University. Página visitada em 23 de agosto de 2008.

[editar] Ver também

Teoria de autômatos: linguagem formal e gramática formal
Hierarquia
Chomsky
Gramática Linguagem Reconhecedor
Tipo-0 Irrestrita Recursivamente enumerável Máquina de Turing
-- -- Recursiva Máquina de Turing que sempre para
Tipo-1 Sensível ao contexto Sensível ao contexto Autômato linearmente limitado
Tipo-2 Livre de contexto Livre de contexto Autômato com pilha
Tipo-3 Regular Regular Autômato finito
Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Colaboração
Imprimir/exportar
Ferramentas
Noutras línguas