Vous êtes sur la page 1sur 5

LINGUAGEM LIVRE DE CONTEXTO

As Linguagens Livres de Contexto um reconhecedor de linguagens, capaz de aceitar palavras corretas


(cadeia, sentenas) da linguagem. Por exemplo, os autmatos. Um gerador de linguagens um dispositivo
capaz de sintetizar todas as palavras de uma linguagem, o caso das gramticas.
Autmatos Finito e Expresses Regulares definem Linguagens Regulares. Linguagem Regulares no
permitem construes contendo alinhamentos sintticos. Assim foi adicionado a possibilidade de
alinhamentos s Linguagens Regulares (LRs), obtendo outra classe de linguagens, as Linguagens Livres de
Contexto.
A classe das LLCs de fundamental importncia para o estudo da informtica, pois:
a) Compreende um universo mais amplo que as LR, permitindo tratar questes como:


Parnteses Balanceados,

Construes Bloco-Estruturadas

Outras estruturas prprias de linguagens como C, Pascal, etc.

b) Os algoritmos que as implementam so simples e possuem uma boa eficincia.


c) Aplicaes: analisadores sintticos, tradutores de linguagens e processadores de texto etc.
O estudo das LLC desenvolvido a partir de um formalismo gerador (gramtica) e um formalismo
operacional ou reconhecedor (autmato) como segue:
a) Gramticas Livres de Contexto: So gramticas onde as regras de produo so definidas de
forma mais livre do que nas gramticas regulares,
b) Autmato de Pilha: Possui a estrutura bsica de um AFD ao qual associado uma memria
auxiliar na forma de pilha e a facilidade de no-determinismo.

GRAMTICA LIVRE DE CONTEXTO


As Linguagens Livres Contexto so desenvolvidas a partir das Gramticas Livres de Contexto (GLC). A GLC
um tipo mais complexo de geradores de linguagem, as quais materializam um completo entendimento do
procedimento de construo das palavras pertencentes linguagem. A GLC aplicada em compiladores e
conversores de documentos.
Exemplo: GLC para a linguagem an bn
Regras
1- S
2- S a S b
Exemplo de funcionamento para a palavra aabb
S

aSb

(aplicamos a regra 2)

aa S bb

(aplicamos em S a regra 2)

aa bb

(aplicamos em S a regra 1)

Resultado: aabb

Definio:
Teoria da Computao
Prof. Glucya Carreiro Boechat

H quatro conceitos importantes em uma descrio de uma gramtica:


Um conjunto finito de smbolos, chamados terminais ou smbolos terminais;
Conjunto finito de variveis, chamados de categorias sintticas ou no terminais.
Uma das variveis representa a linguagem que est sendo definida, chamada smbolo de incio.
Existe um conjunto finito de produes ou regras que representam a definio recursiva de uma linguagem.
Cada produo consiste em:

Uma varivel que est sendo (parcialmente) definida pela produo. Essa varivel chamada de
cabea (head) da produo
O smbolo de produo,
Uma palavra de zero ou mais terminais e variveis. Esta parte chamada de corpo.
O lado esquerdo das produes possui exatamente uma varivel.

Definio Formal
Uma Gramtica Livre de Contexto (GLC) G uma qudrupla (V, T, P, S), onde:
V conjunto finito de variveis ou smbolo no-terminais
T (conjunto de terminais) um subconjunto de V
P (conjunto de regras (ou produes)) um subconjunto finito de (V -T) x V*
S (smbolo inicial (ou varivel de incio)) um elemento de V
Exemplo
Definir a gramtica que gera palndromos. Um Palndromo uma cadeia lido da mesma forma, da direita
para a esquerda e da esquerda para a direita.
Exemplo1: 0110, 11011, 000, so palndromos
Exemplo2: 011, 0101, 1010 no so palndromos.
Gramtica
G=({P, {0, 1}, A, S)
Onde A dada por:
1. S
2. S 0
3. S 1
4. S 0 S 0
5. S 1 S 1
Gerar a palavra w = 00100100
S

Reduo do espao utilizando a seguinte notao :


ou
S |0|1|0S0|1S1

0S0
00S00
001S100
0010S0100
0010 0100

Derivaes
Aplicando as regras de produo em ordens diferentes, uma gramtica pode gerar muitas cadeias. O
conjunto de todas tais cadeias a linguagem definida ou gerada pela gramtica. Existe duas formas de
derivao : derivao Mais Esquerda e Mais Direita
Teoria da Computao
Prof. Glucya Carreiro Boechat

Exemplo: Linguagem Livre de Contexto


A linguagem gerada pela GLC abaixo composta por expresses aritmticas contendo colchetes balanceados,
dois operandos e um operador:
G = ({E}, {+, *, [, ], x}, P, E), onde
P = { E E+E

| E*E

| [E]

| x }.

Por exemplo, a expresso [x+x]*x pode ser gerada pela seguinte seqncia de derivaes:
E

E*E
[E]*E
[E+E]*E
[x+E]*E
[x+x]*E
[x+x]*x
RVORE DE DERIVAO

Para uma determinada GLC, a representao da derivao de palavras na forma de rvore, denominada rvore
de Derivao como se segue:
a) A raiz o smbolo inicial da GLC;
b) Os vrtices interiores obrigatoriamente so variveis. Se A um vrtice interior e X1, X2, ..., Xn so os
filhos de A, ento A  X1X2...Xn uma produo da gramtica e os vrtices X1, X2, ..., Xn esto
ordenados da esquerda para a direita.
c) Um vrtice folha um smbolo terminal ou um smbolo vazio. Neste caso o vazio o nico filho de seu
pai (A  ).
Exemplo: rvores de Derivao
a) G = ({S}, {a, b}, P, S), onde P = {S  aSb | }.
b) G = ({E}, {+, *, [, ], x}, P, E), onde P = {E  E+E | E*E | [E] | x}.
rvore de Derivao x Derivaes
Uma nica rvore de derivao pode representar derivaes distintas de uma mesma palavra ou expresso.
Na rvore representada na figura, a palavra x + x * x pode por exemplo ser gerada pelas seguintes
derivaes:

AMBIGUIDADE
Uma GLC dita uma gramtica ambgua se existe uma palavra que possui duas ou mais rvores de derivao.
Ex: x + x * x.

Teoria da Computao
Prof. Glucya Carreiro Boechat

Exerccio Gramticas Livre de Contexto

1) Verifique se as seguintes palavras so reconhecidas pela gramtica


OBS: USE A CRIATIVIDADE PARA GERAR MAIS TRES PALAVRAS
1) S SS | a S a | b S b |
a) abba
b) aabbaaaa
2) S a b A
AaA|bA|B
B ba
a) abbbaba
b) abba
3) S a A | b A
AaB|bB
B bC
CaC|bC|

a) abbab
b) bbababba
4) S a S | b S | B
B aa | bb
a) ababaa
b) babbbb

2) Desenvolver as GLCs capazes de produzir as seguintes linguagens:


a) L2 = {&}
b) L3 = {a, b}*
c) L4 = {w | w e' palndromo em = {a, b}* }
d) L5 = {wwr | w palavra em = {a, b}* }
e) L6 = {w | w palavra de = {(,)}* com parenteses balanceados }
Teoria da Computao
Prof. Glucya Carreiro Boechat

f) L7 = {bmabnabp | para qualquer m,n e p > 0}


g) L8 = {anbman | para qualquer n > 0 e m >= 0}
3) Seja G a gramtica G = (V, T, P, S), onde
W = {O, A, N, V, S}
T = {Jim, grande, verde, queijo, comeu}
P = { O NVN,
N S,
N NA,
A grande,
A verde,
S queijo,
S Jim,
V comeu}
}

S = {O}

Gramtica representando uma parte do idioma portugus. O significa orao, A adjetivo, S substantivo, V
verbo e N complemento nominal.
Derivar as seguintes das seguintes palavras
Jim comeu queijo
Jim grande comeu queijo verde
Queijo grande comeu Jim
Queijo grande comeu queijo grande verde grande verde verde
Jim verde comeu Jim grande verde
4) Encontre a Expresso Regular para seguinte Gramtica G = (V, T, P, S), onde V = {a,b,}
5) Verifica se a gramtica abaixo ambgua ou no e justifica sua resposta:
S SS | a S a | b S b |
(i) abba

(ii) aabbaaaa

Teoria da Computao
Prof. Glucya Carreiro Boechat

Vous aimerez peut-être aussi