Linguagens Livre de Contexto - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Linguagens Livre de Contexto

Description:

Title: Usando o Lema do Bombeamento Author: Wilson Rosa Last modified by: Wilson Rosa Created Date: 4/26/1999 1:40:00 PM Document presentation format – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 30
Provided by: Wilso189
Category:

less

Transcript and Presenter's Notes

Title: Linguagens Livre de Contexto


1
Linguagens Livre de Contexto
  • ltstmtgtltif-stmtgtltwhile-stmtgt
  • ltbegin-stmtgtltassg-stmtgt
  • ltif-stmtgtif ltbool-exprgt then ltstmtgt
  • else ltstmtgt
  • ltwhile-stmtgtwhile ltbool-exprgt
  • do ltstmtgt
  • ltbegin-stmtgtbegin ltstmt-listgt end
  • ltstmt-listgtltstmtgtltstmt-listgtltstmtgt
  • ltassg_stmtgtltvargtltarith-exprgt

2
  • ltbool-exprgt
  • ltarith-exprgtltcomp-opgtltarith-exprgt
  • ltcomp.-opgtltgt?
  • ltarith-exprgtltvargtltconstgt
  • (ltarith-exprgtltarith-opgtltarith-exprgt)
  • ltarith-opgt - /
  • ltconstgt0123456789
  • ltvargtabcxyz
  • BNF (Backus-Naur form)dando a definição formal de
    uma linguagem de programação.

3
Mais Exemplos
  • L anbnn?0 é livre de contexto.
  • Se em L substituirmos a por ( e b por ),
    cadeias de parênte-ses tais como ( ( ) ) e ( ( (
    ) ) ) estarão em L.
  • L descreve uma estrutura aninhada comum em
    linguagens de progra-mação.

4
Gramáticas Livre De Contexto
  • As produções numa gramática regu-lar são
    restritas de duas formas
  • o lado esquerdo deve conter uma única variável,
  • enquanto o lado direito tem uma forma especial.
  • Para criar uma gramática mais poderosa, devemos
    relaxar algumas dessas condições .

5
  • Mantemos a restrição sobre o lado esquerdo, mas
    permitimos qualquer coisa no lado direito.
  • Definição Uma gramática GltV,T,S,Pgt é livre de
    contexto se todas as produções em P tem a forma
    A?x, onde A?V e x?(V?T).

6
  • A linguagem L é livre de contexto sss existe uma
    gramática livre de contexto G tal que L L(G).
  • Obs Toda linguagem regular é livre de contexto.

7
Exemplos
  • GltS,a,b,S,Pgt, com produ-ções S?aSa S?bSb,
    S??
  • Uma derivação típica nessa gramática é
    S?aSa?aaSaa?aabSbaaa?aabbaa
  • Isto torna claro que L(G)WWRW?a, b

8
Mais Exemplos
  • A gramática
  • GltS, A, B, a, b, S, Pgt,
  • onde P é
  • S?abB A?aaBb B?bbAa A??
  • L(G)ab (bbaa)n bba (ba)n n?0

9
Derivação Mais à Esquerda e Mais à Direita
  • GltA,B,S,a,b,S,Pgt com produções
  • 1. S?AB
  • 2. A?aaA
  • 3. A??
  • 4. B?Bb
  • 5. B??.
  • L(G)a2nbmn?0, m?0
  • S?1AB?2aaAB?3aaB?4aaBb?5aab
  • S?1AB?4ABb
  • ?2aaABb?5aaAb
  • ?3aab

10
  • Definição
  • Uma derivação diz-se mais à esquerda se em cada
    etapa a variável mais a esquerda é trocada na
    forma sentencial.
  • Se em cada etapa a variável mais a direita é
    trocada, dizemos que a derivação é mais à direita.

11
Exemplos
  • Considere a gramática com produ-ções S?aAB,
    A?bBb, B?A?
  • uma derivação mais à esquerda da cadeia abbbb
  • S?aAB?abBbB?abAbB?abbBbbB?abbbB?abbbb
  • uma derivação mais à direita
  • S?aAB?aA??abBb?abAb?abbBbb?abbbb.

12
Árvores de Derivação
  • Mostra derivações independente da ordem em que as
    produções são usadas.
  • Uma árvore de derivação é uma árvore ordenada
    onde
  • os nodos são rotulados com os lados esquerdos das
    produções e
  • o filho de cada nodo representa seus
    correspondentes lados direitos.

13
Exemplo
  • A?a b A B c

14
Definição
  • Seja GltV, T, S, Pgt uma gramática livre de
    contexto. Uma árvore ordenada é uma árvore de
    derivação para G se e somente se ela tem as
    seguintes propriedades
  • 1. A raiz tem rótulo S
  • 2. Toda folha tem rótulo de T??
  • 3. Todo vértice interior tem um rótulo de V.

15
  • 4. Se um vértice tem rótulo A ? V, e seus filhos
    são rotulados(da es-querda para direita) a1, a2,
    ,an, então P deve conter uma produção da forma
    A?a1a2an
  • 5. Uma folha rotulada ? o seu pai não tem nenhum
    filho além dàquele rótulado ?.

16
  • árvore de derivação parcial
  • Uma árvore que tem as proprieda-des 3, 4 e 5 mas
    não necessaria-mente 1 e
  • a propriedade 2 é trocada por
  • 2a.Toda folha tem rótulo em V?T??

17
cadeia gerada
  • A cadeia de símbolos obtida lendo-se, da esquerda
    para à direita, omitindo qualquer ? encontrado,
    diz-se gerada pela árvore.
  • Exemplo Considere a gramática G, com produções
  • S?aAB A?bBb B?A ?

18
Exemplo (a)
  • A árvore (a) é uma ár-vore de derivação par-cial
    para G.
  • A cadeia abBbB, gera-da pela árvore, é uma forma
    sentencial de G.

19
Exemplo (b)
  • a árvore (b) é uma árvore de derivação.
  • A cadeia gerada, abbbb é uma sentença de L(G).

(b)
20
Relação entre Formas Sentenciais e Árvores de
Derivações
  • Árvores de derivação dão uma des-crição explícita
    e compreensível de derivações.
  • Assim como grafo de transições para autômatos
    finitos, elas são úteis nos argumentos.

21
Teorema
  • Seja GltV, T,S, Pgt uma gramática livre de
    contexto.
  • Então pra todo w?L(G) existe uma árvore de
    derivação G cuja cadeia gerada é w.
  • Inversamente a cadeia gerada por qual-quer árvore
    de derivação está em G.
  • Além disso, se tG é qualquer árvore de derivação
    parcial para G cuja raiz é rotulada S, então tG
    gera uma forma sentencial de G.

22
Prova
  • Primeiramente, mostraremos que para toda forma
    sentencial de G existe uma árvore de derivação
    parcial.
  • Faremos isso por indução no número de etapas da
    derivação.

23
Prova (cont.) base
  • Como base, observemos que a afir-mação é
    verdadeira pra toda forma sentencial derivada em
    uma etapa. Como S?u implica que existe uma
    produção S?u, isto segue imediata-mente da
    definição da árvore de derivação.

24
Prova(cont.) passo
  • Suponhamos que para toda forma sentencial
    derivável em n etapas, existem uma árvore de
    derivação parcial correspondente.

25
Prova(cont.) passo
  • Agora qualquer w derivável em n1 etapas deve ser
    tal que
  • S?x A y, x, y ? (V U T), A ?V
  • em n etapas, e
  • x A y?x a1, a2amy w,
  • ai ? V?T.

26
  • mas por hipótese de indução existe uma árvore de
    derivação parcial que gera x A y.
  • como G deve ter produção A?a1a2am, expandindo
    as folhas rotuladas A, obtemos uma árvore de
    derivação parcial que gera w.
  • Logo, por indução, o resultado é verdadeiro para
    toda forma senten-cial.

27
  • Usando um argumento análogo, podemos mostrar que
    toda árvore de derivação parcial representa
    alguma forma sentencial.
  • Uma árvore de derivação é uma árvore de derivação
    parcial cujas folhas são terminais.
  • Logo toda sentença em L(G) é gerada por alguma
    árvore de deri-vação de G e toda árvore de
    derivação gerada está em L(G).
  • q.e.d

28
  • Árvores de derivação mostram quais produções são
    usadas para se obter uma sentença, mas não dá a
    ordem de suas aplicações.
  • Árvores de derivações são capazes de representar
    qualquer derivação, refletindo o fato de que esta
    ordem é irrelevante, uma observação que nos
    permite fechar o buraco na discussão anterior.

29
  • Por definição, qualquer w?L(G) tem uma derivação
    mais a esquerda e uma mais a direita.
  • dada uma árvore de derivação, po-demos sempre
    obter uma derivação mais a esquerda pensando na
    árvore como tendo sido construída de tal modo que
    a variável mais a esquerda foi sempre expandida
    primeiro.
  • Todo w ? L(G) tem pelo menosuma derivação mais a
    esquerda e uma mais a direita.
Write a Comment
User Comments (0)
About PowerShow.com