gramática livre de contexto - sol -...
TRANSCRIPT
![Page 1: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/1.jpg)
Gramática Livre de Contexto
![Page 2: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/2.jpg)
N símbolos não terminais
T símbolos terminais
S símbolo de partida
◦ N T =
◦ V = N T
◦ S N
◦ P = { | V+ e V*}
![Page 3: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/3.jpg)
Gramática Irrestrita ou Enumerável Recursivamente
Gramática Sensível ao Contexto
Gramática Livre de Contexto
Gramática Regular
![Page 4: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/4.jpg)
Autômato Finito
Toda Produção é da forma:
◦ A aB
◦ A a
Ou seja: ◦ P={A aX | A N, a T, X N {} }
![Page 5: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/5.jpg)
Autômato Finito
Toda Produção é da forma:◦ A aB
◦ A a
Ou seja: ◦ P={A aX | A N, a T, X N {} }
Do lado esquerdo da produção deve, sempre ocorrer um e apenas um não terminal e do lado direito podem ocorrer um terminal ou um terminal seguido de um não terminal.
![Page 6: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/6.jpg)
Autômato Finito
Toda Produção é da forma:◦ A aB
◦ A a
Ou seja: ◦ P={A aX | A N, a T, X N {} }
G = ({A,B,C} ,{a,b,c},P,A)
A aB | aC | a
B bC
C cC | c
![Page 7: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/7.jpg)
Autômato de Pilha
Toda Produção é da forma:◦ P = { | N e ≠}
![Page 8: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/8.jpg)
Autômato de Pilha
Toda Produção é da forma:◦ P = { | N e ≠}
Do lado esquerdo da produção deve, sempre ocorrer um e apenas um não terminal e do lado direito pode ocorrer qualquer coisa exceto a sentença vazia.
![Page 9: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/9.jpg)
Autômato de Pilha
Toda Produção é da forma:◦ P = { | N e ≠}
X abcS
S aSb
Do lado esquerdo da produção deve, sempre ocorrer um e apenas um não terminal e do lado direito pode ocorrer qualquer coisa exceto a sentença vazia.
![Page 10: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/10.jpg)
Autômato Limitado Linearmente
Toda Produção é da forma:◦ P = { | || ≤ ||}
![Page 11: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/11.jpg)
Autômato Limitado Linearmente
Toda Produção é da forma:◦ P = { | || ≤ ||}
O comprimento da forma sentencial do lado esquerdo deve ser menor ou igual à do lado direito.
![Page 12: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/12.jpg)
Autômato Limitado Linearmente
Toda Produção é da forma:◦ P = { | || ≤ ||}
Do lado direito não é aceito a sentença vazia.
![Page 13: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/13.jpg)
Autômato Limitado Linearmente
Toda Produção é da forma:◦ P = { | || ≤ ||}
Do lado direito não é aceito a sentença vazia.
X abcS
cS aSb
aSb acb
![Page 14: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/14.jpg)
Ou Enumeráveis Recursivamente
Máquina de Turing
Toda Produção é da forma:◦ P = { | V+ e V*}
![Page 15: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/15.jpg)
Ou Enumeráveis Recursivamente
Máquina de Turing
Toda Produção é da forma:◦ P = { | V+ e V*}
O lado esquerdo da produção pode haver uma sequencia quaisquer de símbolos, desde que entre eles haja um não terminal.
![Page 16: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/16.jpg)
Ou Enumeráveis Recursivamente
Máquina de Turing
Toda Produção é da forma:◦ P = { | V+ e V*}
O lado direito da produção pode haver qualquer sequencia de símbolos, inclusive a sentença vazia.
![Page 17: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/17.jpg)
Gramática Irrestrita ou Enumerável Recursivamente
Gramática Sensível ao Contexto
Gramática Livre de Contexto
Gramática Regular
![Page 18: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/18.jpg)
Vamos estender as definições das gramáticas Tipo 1, 2 e 3 para permitir produções do tipo S , sendo S o símbolo inicial.
G = ({A,B,C} ,{a,b,c},P,A)
A aB | a
B bC
C cC | c
![Page 19: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/19.jpg)
Vamos estender as definições das gramáticas Tipo 1, 2 e 3 para permitir produções do tipo S , sendo S o símbolo inicial.
G = ({A,B,C} ,{a,b,c},P,A)
A aB | a |
B bC
C cC | c
![Page 20: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/20.jpg)
Vamos estender as definições das gramáticas Tipo 1, 2 e 3 para permitir produções do tipo S , sendo S o símbolo inicial.
Entretanto, isto só será possível se S não aparecer do lado direito de qualquer produção.
G = ({A,B,C} ,{a,b,c},P,A)
A aB | a |
B bC
C cC | c
![Page 21: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/21.jpg)
Entretanto, isto só será possível se S não aparecer do lado direito de qualquer produção.
Desde modo, a regra S somente será utilizada para dar origem à sentença vazia.
G = ({A,B,C} ,{a,b,c},P,A)
A aB | a |
B bC
C cC | c
![Page 22: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/22.jpg)
A gramática que possuir o símbolo inicial aparecendo do lado direito de regras de produção, deverá ser transformada em outra equivalente que obedeça a esta restrição.
G = ({A,B,C} ,{a,b,c},P,A)
A aB | a |
B bA
C cC | c
A aB abA ab
![Page 23: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/23.jpg)
A gramática que possuir o símbolo inicial aparecendo do lado direito de regras de produção, deverá ser transformada em outra equivalente que obedeça a esta restrição.
Observação: gramáticas equivalentes devem gerar a mesma linguagem.
![Page 24: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/24.jpg)
Quando for necessário transformar a gramática, deverá ser incluído um novo símbolo não-terminal (S’) que passará a ser o novo símbolo inicial, mais a regra S’.
G = ({A,B,C} ,{a,b,c},P,A)
A’ A |
A aB | a
B bA
C cC | c
![Page 25: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/25.jpg)
Exemplo: Modificar a gramática abaixo de modo a incluir a sentença vazia.
G = { { S, A }, {a}, P, S }
P: S aA
A aS | a
![Page 26: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/26.jpg)
Exemplo: Modificar a gramática abaixo de modo a incluir a sentença vazia.
G = { { S, A }, {a}, P, S }
P: S aA
A aS | a
G = { { S’, S, A }, {a}, P’, S’ }
P’: S’ S |
S aA
A aS | a
![Page 27: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/27.jpg)
Aborda um conjunto mais amplo de linguagens.
![Page 28: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/28.jpg)
Aborda um conjunto mais amplo de linguagens.
Com ela podemos tratar questões como as dos parênteses balanceados construções de blocos e estruturas, entre outras formalidades de linguagens de computação conhecidas.
![Page 29: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/29.jpg)
Aborda um conjunto mais amplo de linguagens.
Com ela podemos tratar questões como as dos parênteses balanceados construções de blocos e estruturas, entre outras formalidades de linguagens de computação conhecidas.
É fundamental para o desenvolvimento de compiladores, pois a partir destas são desenvolvidos os analisadores sintáticos, parte de um compilador.
![Page 30: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/30.jpg)
Podem ser estudadas abordando os seguintes formalismos:
◦ Gramática Livre de Contexto. Trata se de um gerador da linguagem. É uma gramática mais flexível em suas produções do que a gramática regular, porém ainda com certas restrições.
![Page 31: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/31.jpg)
Podem ser estudadas abordando os seguintes formalismos.
◦ Gramática Livre de Contexto. Trata se de um gerador da linguagem.
◦ Autômato de Pilha. Trata se de um reconhecedor da linguagem, que consiste basicamente em um autômato finito não determinístico que utiliza uma pilha, que serve como memória adicional.
![Page 32: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/32.jpg)
Classificamos uma gramática como sendo livre de contexto quando as regras de produção são todas na seguinte forma: P = { | N e }.
![Page 33: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/33.jpg)
Classificamos uma gramática como sendo livre de contexto quando as regras de produção são todas na seguinte forma: P = { | N e }.
G1 = ({A,B}, {0,1,#}, {A 0A1 | B, B #} , A)
![Page 34: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/34.jpg)
Classificamos uma gramática como sendo livre de contexto quando as regras de produção são todas na seguinte forma: P = { | N e }.
G1 = ({A,B}, {0,1,#}, {A 0A1 | B, B #} , A)
G2 = ({ S, A, B }, {a, b}, P, S )
Onde P é:
S aB | bA
A bAA | a | aS
B b | bS | aBB
![Page 35: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/35.jpg)
Classificamos uma gramática como sendo livre de contexto quando as regras de produção são todas na seguinte forma: P = { | N e }.
G1 = ({A,B}, {0,1,#}, {A 0A1 | B, B #} , A)
G2 = ({ S, A, B }, {a, b}, P, S )
Onde P é:
S aB | bA
A bAA | a | aS
B b | bS | aBB
L(G2) é o conjunto de todas as palavras que tem o mesmo número de a’s e b’s.
![Page 36: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/36.jpg)
As árvores de derivação são representações gráficas para as derivações nas GLC.
Através destas, temos representado explicitamente a estrutura hierárquica que está implícita na linguagem.
![Page 37: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/37.jpg)
Formalmente, consideremos que G = (N, T, P, S) seja uma GLC.
Uma árvore é uma árvore de derivação para G se:
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
![Page 38: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/38.jpg)
Uma árvore é uma árvore de derivação para G se:◦ O rótulo da raiz é S.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
![Page 39: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/39.jpg)
Uma árvore é uma árvore de derivação para G se:◦ Se A1, A2, ..., An são descendentes diretos de A, da
esquerda para a direita, então A A1A2 ... An é uma produção de P.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
![Page 40: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/40.jpg)
Uma árvore é uma árvore de derivação para G se:◦ Se um nó A tem um ou mais descendentes, então A
é um não terminal.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
S b A
![Page 41: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/41.jpg)
Uma árvore é uma árvore de derivação para G se:◦ Todo nó tem um rótulo que é um símbolo de N T {}.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
S b Aa
![Page 42: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/42.jpg)
Uma árvore é uma árvore de derivação para G se:◦ Se D é a única subárvore da raiz e tem rótulo ,
então a regra S P.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
S b Aa
b aa
![Page 43: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/43.jpg)
S aAS aSbAS aabAS aabAa aabbaa
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
S b Aa
b aa
![Page 44: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/44.jpg)
Definimos como profundidade da árvore de derivação o comprimento do maior caminho entre a raiz e um nó terminal. No exemplo, a árvore de derivação da sentença tem profundidade 3.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
S b Aa
b aa
![Page 45: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/45.jpg)
Definimos como limite de uma árvore de derivação a seqüência formada pela concatenação, da esquerda para a direita, das folhas da árvore de derivação.
G = ( {S, A}, {a, b}, P, S )Onde P é:
S aAS | a
A SbA | SS | ba
S
a A S
S b Aa
b aa
![Page 46: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/46.jpg)
Uma árvore de derivação ignora variações na ordem em que os símbolos foram substituídos na derivação.
G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
![Page 47: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/47.jpg)
A sentença - (id * id) pode ser derivada de dois modos diferentes:
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
![Page 48: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/48.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
Derivação mais a esquerda
Derivação mais a direita
![Page 49: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/49.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
![Page 50: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/50.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
![Page 51: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/51.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
![Page 52: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/52.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
![Page 53: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/53.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id
![Page 54: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/54.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
idid
![Page 55: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/55.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id id
E
![Page 56: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/56.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id id
E
- E
![Page 57: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/57.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id id
E
- E
( E )
![Page 58: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/58.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id id
E
- E
( E )
E + E
![Page 59: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/59.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id id
E
- E
( E )
E + E
id
![Page 60: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/60.jpg)
E - E - ( E ) - ( E + E ) - ( id + E ) - ( id + id )
E - E - ( E ) - ( E + E ) - ( E + id ) - ( id + id )
E
- E
( E )
E + E
id id
E
- E
( E )
E + E
idid
![Page 61: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/61.jpg)
Uma GLC é ambígua quando, para alguma sentença da linguagem gerada, existe mais de uma árvore de derivação.
![Page 62: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/62.jpg)
Uma GLC é ambígua quando, para alguma sentença da linguagem gerada, existe mais de uma árvore de derivação.
G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
![Page 63: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/63.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
![Page 64: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/64.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
id
![Page 65: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/65.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
id E * E
![Page 66: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/66.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
id E * E
id id
![Page 67: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/67.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
id E * E
id id
E
E * E
![Page 68: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/68.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
id E * E
id id
E
E * E
E + E
![Page 69: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/69.jpg)
id + id * id G = ({E}, {+, *, (, ), -, id}, P, E )
Onde P é:
E E + E | E * E | ( E ) | - E | id
E
E + E
id E * E
id id
E
E * E
E + E id
id id
![Page 70: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/70.jpg)
A ambigüidade é muitas vezes não desejada em certas aplicações, por exemplo, em linguagens de programação.
Às vezes quando se tem uma gramática ambígua pode-se encontrar uma gramática equivalente não ambígua.
![Page 71: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/71.jpg)
Porém algumas linguagens livres de contexto só podem gerar gramáticas ambíguas, essas linguagens são ditas linguagem inerentemente ambígua, por exemplo a linguagem L = { ai bj ck | i = j ou j = k}.
![Page 72: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/72.jpg)
Muitas GLCs são a união de GLC mais simplificadas.
![Page 73: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/73.jpg)
Muitas GLCs são a união de GLC mais simplificadas.
Se for possível dividir a LLC em pedaços mais fáceis de serem construídos, então construa a gramática de cada pedaço individualmente e depois faça a união destes.
![Page 74: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/74.jpg)
Muitas GLCs são a união de GLC mais simplificadas.
Se for possível dividir a LLC em pedaços mais fáceis de serem construídos, então construa a gramática de cada pedaço individualmente e depois faça a união destes.
Para isto basta colocar todas as regras juntas e inserir uma nova produção que passará a conter o símbolo de partida derivando todos os símbolos de partida das gramáticas individuais.
![Page 75: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/75.jpg)
Exemplo: L(M) = {0n1n n 0} {1n0n n 0}
G1 = ({S1}, {0,1}, { S1 0S11}, S1)
G2 = ({S2}, {0,1}, { S2 1S20}, S2)
Juntando as duas temos:
G = ({S, S1, S2}, {0,1}, P, S)
Onde P é:
S S1 S2
S1 0S11
S2 1S10
![Page 76: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/76.jpg)
Se a linguagem é regular, construa primeiro o AF e o converta em uma gramática.
![Page 77: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/77.jpg)
Algumas LLC contêm duas subpalavras que são “ligadas”, no sentido que a máquina precisa lembrar de determinada informação a respeito da primeira subpalavra para poder verificar a escrita da segunda subpalavra.
Por exemplo, a linguagem {0n1n n 0}
G1 = ({S1}, {0,1}, { S1 0S11}, S1)
![Page 78: Gramática Livre de Contexto - SOL - Professorprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos...Gramática Livre de Contexto. Trata se de um gerador da linguagem. Autômato de](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f11cd14fae272442f4c0725/html5/thumbnails/78.jpg)
Algumas LLC podem conter estruturas que aparecem recursivamente como parte de outras estruturas.
Um exemplo são as gramáticas que geram expressões aritméticas.