Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Uma linguagem livre de contexto por definio uma linguagem que pode ser
gerada atravs de uma gramtica livre de contexto. As linguagens livres de contexto
foram desenvolvidas inicialmente com o intuito de formalizar as linguagens naturais,
como portugus e ingls. Entretanto, percebeu-se que as linguagens naturais so bem
mais complexas do que as linguagens que podem ser representadas pelas linguagens
livres de contexto.
Por mais que as linguagens livres de contexto no tenham sido capazes de
cumprir seu objetivo inicial elas se mostraram bastante teis para formalizao de
linguagens artificias, em especial as linguagens de programao. Com o
desenvolvimento de linguagens de programao de auto nvel era necessrio o
desenvolvimento de noes adequadas para sua formalizao e nesse sentido as
linguagens livres de contexto tiveram um papel extremamente importante.
2
Isso significa que pode ser um smbolo terminal, no terminal ou um
smbolo vazio, e pertence ao conjunto de smbolos no terminais.
Como exemplo de sua utilizao temos:
Para gerar uma linguagem que gera um nmero igual de e na forma
, a gramtica livre de contexto ser definida como:
= {(, ), (, ), , ( , |)}
Agora o que precisamos fazer usar as regras de produo para gerar a
estrutura requisitada.
( )
( )
( )
3 3
3 BNF ESTENDIDA
4
Em BNF estendida podemos usar as seguintes regras que simplificam
algumas coisas:
{x}: representa zero ou mais repeties de x;
[x]: representa opcional(ex.: x| <empty>);
( ): representa agrupamento de comandos;
|: smbolo que pode ser usado em qualquer lugar para escolhas alternativas;
|: aspas entre tokens para distinguir de meta-smbolos da prpria gramtica;
4 RVORE DE DERIVAO
5
Figura 1: Exemplo de rvore de Derivao
6
Exemplo 01: Seja a sentena aabbaa da gramtica livre de contexto (GLC)
G = ({S, A}, {a, b}, P, S) dada pelas seguintes regras de produo (P): S aAS | a, A
SbA | ba | SS. Temos abaixo sua derivao e a sua representao em forma de
rvore figura 2.
7
4.1 Derivaes mais esquerda ou direita e Ambiguidade
SS*SS+S*Sa+S*Sa+a*Ea+a*a
b) Derivao mais direita:
SS*SS*aS+S*aS+a*aa+a*a
Figura 4 Figura 5
9
REFERNCIAS BIBLIOGRAFICAS
10