Sei sulla pagina 1di 10

SUMRIO

1 LINGUAGENS LIVRES DE CONTEXTO........................................................................... 2


2 GRAMTICAS LIVRES DE CONTEXTO .......................................................................... 2
3 BNF ESTENDIDA ............................................................................................................... 3
4 RVORE DE DERIVAO ................................................................................................ 5
4.1 Derivaes mais esquerda ou direita e Ambiguidade ....................................... 8
REFERNCIAS BIBLIOGRAFICAS ................................................................................ 10
1 LINGUAGENS LIVRES DE CONTEXTO

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 GRAMTICAS LIVRES DE CONTEXTO

As gramticas livres de contexto so principalmente utilizadas para


formalizao de linguagens de programao. As principais caractersticas que
influenciam nessa utilizao so respectivamente a possibilidade de se criar
construes aninhadas, caracterstica que est presente na maioria das linguagens
de programao de alto nvel, como criao de expresses aritmticas e delimitaes
de blocos de cdigo. E o fato de no ser uma linguagem to complexa, se comparada
as linguagens de tipo 1.
As linguagens livres de contexto so uma qudrupla com os seguintes
componentes (,, , ). Podemos caracterizar cada um como:
Conjunto finito de smbolos no terminais.
Conjunto finito de smbolos terminais.
Regras de produo.
Smbolo inicial.

As gramticas livres de contexto possuem uma lei de produo da forma



de: onde = { } e .

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

A expresso gerada anteriormente um bom exemplo para demonstrar


uma gramtica livre de contexto, j que um exemplo que no pode ser reproduzido
usando a gramtica das linguagens regulares.

3 BNF ESTENDIDA

considerada uma variao da notao BNF(formalismo de Backus-Naur)


fornecendo-lhe melhorias e simplificaes. Essa forma (BNF) foi empregada pela
primeira vez no nicio da dcada de 1960 para definir formalmente a linguagem de
programao ALGOL 60. Comumente usada para definir a sintaxe de linguagens de
programao.
A BNF estendida (EBNF) prov uma sintaxe adicional para simplificar
algumas tarefas da gramtica BNF, sendo um resultado da fuso das definies de
BNF e expresses regulares estendidas. Esta ltima por definio uma expresso
regular que admite como operandos os smbolos no terminais da gramtica, em
adio aos terminais.
Podemos dividir a gramtica BNF em quatro partes:
3
1) Um conjunto de tokens (smbolos terminais): so as menores unidades de
sintaxe; So cadeias de um ou mais caracteres (ex.: identificador, palavras
reservadas, operadores, smbolos da linguagem) e atmicos, ou seja, no so
compostos de partes menores;
2) Um conjunto de smbolos no-terminais: so pedaos maiores de sintaxe. So
cadeias colocadas entre chaves chevron (ex.: <NP>); eles no ocorrem
literalmente no texto do programa e sua gramtica informa como eles podem
ser expandidos em outros smbolos no-terminais e tokens.
3) Um smbolo de partida: um smbolo no-terminal particular que forma a raiz
de qualquer rvore de derivao para a gramtica
4) Um conjunto de produes (regras); so as regras de construo da rvore,
onde cada uma possui um left-hand side (chamado de LHS ou lado esquerdo-
possui apenas um smbolo no-terminal), separador ::= e um right-hand side
(chamado de RHS ou lado direito - sequncia de um ou mais smbolos no-
terminais ou tokens). Uma produo permite uma nica possibilidade de
construir uma rvore de derivao: permite que um smbolo no-terminal no
LHS seja expandido de acordo com o RHS, em ordem, como filhos da rvore.
Quando se usa mais de uma produo com o mesmo left-hand side, pode-se
usar uma forma abreviada; A gramtica BNF pode definir o left-hand side, o
separador ::= e ento a lista de todos os possveis right-hand side separados
pelo smbolo especial | (barra em p).

BNF prev um smbolo no-terminal especial <empty> ou que deve ser


usado quando se deseja gerar nada.
Por exemplo, a gramtica a seguir define um comando if-then tpico com a
parte else opcional:

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;

Como exemplos dessas regras temos:

4 RVORE DE DERIVAO

No estudo da teoria da computao, as gramticas formais at aqui


estudadas servem para denotar palavras pertencentes a uma dada linguagem, sem a
necessidade da anlise de sua estrutura para determinar seu significado. Quando se
trata desse tipo de abordagem o conceito de derivao perde sua eficcia, tornando-
se incapaz de fazer tal anlise sinttica como em linguagens naturais como a lngua
portuguesa , neste cenrio precisamos do uso das rvores de derivao.
As rvores de Derivao, que tambm podem ser conhecidas como
rvores de Anlise sinttica ou rvores Gramaticais, so estruturas grficas de
representao sentencial, que consistem na derivao de uma palavra/estrutura da
gramatica em forma de rvore. So grafos conexos que no contem ciclos.

5
Figura 1: Exemplo de rvore de Derivao

Lembrando que uma rvore um grafo conexo que no tem ciclos, as


rvores constituem-se na verdade em grafos orientados. So estruturas amplamente
utilizadas atualmente uma vez que segundo Ramos 2008:

1. Proporciona meios para uma melhor visualizao da estrutura das


sentenas da linguagem, facilitando a anlise das mesmas.
2. Auxilia na demonstrao formal de teoremas, na interpretao de certos
resultados tericos e na assimilao de vrios conceitos.
3. Facilita a representao interna, nos compiladores e interpretadores, da
estrutura das sentenas analisadas, registrando importantes informaes
estruturais sobre as mesmas, a serem utilizadas em outros estgios do
processamento da linguagem.

Em termos gerais, demonstrando formalmente, uma rvore de derivao


uma representao das sequencias de derivaes em uma gramtica livre de contexto
G = (V, , P, S), que obedece as seguintes propriedades:

a) A raiz o smbolo incial da gramtica;


b) Os vrtices interiores obrigatoriamente so variveis. Se A um vrtice interior
e X1, X2,..., Xn so filhos de A, ento A X1X2...Xn uma produo da
gramtica e os vrtices X1, X2,..., Xn esto ordenados da esquerda para direita;
c) Um vrtice folha um smbolo terminal, ou o smbolo vazio. Neste caso, o vazio
o nico filho de seu pai (A ).

Vejamos agora dois exemplos de rvores de derivao para uma sentena


dada.

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.

S aAS aSbAS aabAS aabbaS aabbaa

Figura 2: rvore de Derivao de aabbaa

Exemplo 02: Seja a gramtica G, dada por suas regras:


S AB, A aaA | , B Bbb |
A rvore de derivao para a sequncia aaaabb est representada na
Figura 3. O resultado da rvore aaaabb, sendo as regras escolhidas de acordo com
a derivao: S B aaAB aaaaAB aaaaB aaaaBbb aaaabb

Figura 3: rvore Derivao de aaaabb

7
4.1 Derivaes mais esquerda ou direita e Ambiguidade

Em certos casos, uma sentena ou cadeia pertencente a uma gramtica


pode apresentar mltiplas rvores que podem ser formadas a partir das substituies
dos smbolos no terminais mais direita/esquerda, obedecendo as regras de
produes dadas.
Quando isto ocorre dizemos que a rvore mais esquerda ou mais
direita.
Abaixo temos derivaes distintas, mais esquerda e mais direita para a
palavra a + a * a. aps temos suas representaes em forma de rvore nas figuras 4
(mais esquerda) e 5 (mais direita):

a) Derivao mais esquerda:

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

Nas demonstraes acima, podemos definir outro conceito no mbito das


derivaes, que o de ambiguidade.
Definio: Dizemos que uma gramtica livre de contexto ambgua, se
existe uma palavra que possua duas ou mais rvores de derivao.
8
Vemos que para a mesma palavra a + a * a, encontramos mais de uma
derivao esquerda/direita e consequentemente mais de uma rvore para a mesma
palavra ento podemos afirmar que esta gramtica e ambgua.

9
REFERNCIAS BIBLIOGRAFICAS

COUTINHO, S. C. e SCHECHTER, Luis Menasch. Autmatos, Linguagens


Formais e Computabilidade. Verso 0.9. Universidade Federal do Rio de Janeiro,
2016.

Linguagens Formais: Teoria, Modelagem e Implementao M.V.M. Ramos, J.J. Neto


e I.S. Vega Bookman, 2009.

MENEZES, Paulo Fernando Blauth. Linguagens Formais e autmatos. 3 ed.


Editora Sagra Luzzatto. Instituto de Informtica da UFRGS. Porto Alegre, 2000.

RAMOS, Marcus Vincius Midena. Linguagens Formais e autmatos. Curso de


Engenharia da Computao Universidade Federal do Vale do So Francisco,
2008.

10

Potrebbero piacerti anche