gramática livre de contexto - sol -...

78
Gramática Livre de Contexto

Upload: others

Post on 28-Jun-2020

5 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.