linguagens formais e autômatos (lfa) - departamento de...

18
Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013 - 2) Linguagens Formais e Autômatos (LFA) Aula de 16/09/2013 Conversões e Transformações ©Clarisse S. de Souza, 2013 1

Upload: hatuong

Post on 16-Dec-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Linguagens Formais e Autômatos (LFA)

Aula de 16/09/2013

Conversões e Transformações

©Clarisse S. de Souza, 2013 1

Page 2: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Conversões de Gramáticas LR em LL e vice-versa

Qual é a ideia?

Seja GRD uma gramática linear à direita: Existe uma gramática GRE linear à esquerda que gera o mesmo conjunto de cadeias que GRD?

©Clarisse S. de Souza, 2013 2

=

S

c

ba

aaε

a

aa

bc ε

S

Page 3: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Uma exploração interessanteAs regras de LR, gerada por GRD, têm o seguinte padrão:

a cadeia β de toda produção α β é (Σ ∪ ε) . ((V-Σ) ∪ ε) para Σ = alfabeto de LR e V = vocabulário da GRD que gera LR

Seja T a seguinte transformação definida sobre as produções de GRD:

Para toda produção α β de GRD onde |β| > 1• criar uma produção α δ onde δ é o inverso de βPara toda produção α β de GRD onde |β| ≤ 1• criar uma produção α δ idêntica a α β

Qual o perfil da linguagem LT gerada pelas produções resultantes da transformações, se comparado a LR?

©Clarisse S. de Souza, 2013 3

Page 4: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Exemplo

LRS aSS bXX bX c

LΓS’ S’aS’ X’bX’ bX’ c

©Clarisse S. de Souza, 2013 4

Page 5: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Exemplo

LRS aSS bXX bX c

a*b(b|c)

LTS’ S’aS’ X’bX’ bX’ c

©Clarisse S. de Souza, 2013 5

Page 6: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Exemplo

LRS aSS bXX bX c

a*b(b|c)

LTS’ S’aS’ X’bX’ bX’ c

(b|c)ba*

©Clarisse S. de Souza, 2013 6

Page 7: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Para gerar GRE a partir de GRDSeja L uma linguagem LR e LRev e linguagem reversa de LR.

Seja GRDRev a gramática regular à direita capaz de gerar LRev

A gramática regular à esquerda GRE, que gera as mesmas cadeias que LR, resulta das seguintes transformações sobre as produções de GRDRev:

Para toda produção α β de GRDRev onde |β| > 1• criar uma produção α δ onde δ é o inverso de βPara toda produção α β de GRDRev onde |β| ≤ 1• criar uma produção α δ idêntica a α β

Nosso desafio: Encontrar GRDRev, a gramática regular à direita que gera LRev

©Clarisse S. de Souza, 2013 7

Page 8: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

O valor de AF na busca da versão LL de LR

1. Para encontrar a linguagem reversa de LR, invertemos a GRD que gera LR (= GRE de LRev)

©Clarisse S. de Souza, 2013 8

Note-se que asexpansões do símboloRAIZ (“S”) numa LR,quando incluem umterminal, indicam oPREFIXO das cadeiasda linguagem quedefinem.

}As expansões do símboloRAIZ (“S”) numa LL,quando incluem umterminal, indicam oSUFIXO das cadeiasda linguagem quedefinem.

}GRD que gera LR GRE que gera LRev

Page 9: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

2. Para encontrar GRDRev (gramática regular à direita que gera LRev) podemos usar o AF de GRE:

©Clarisse S. de Souza, 20139

GRES’ S’aS’ X’bX’ bX’ c

(b|c)ba*

AFRevestado inicial : q0estado final : q2

Transições:q0,b,q1 ................ S b Xq0,c,q1 ................ S c Xq1,b,q2 ................ X b Yq2,a,q2 ................ Y a Y | ε

(b|c)ba*

GRDRev

O valor de AF na busca da versão LL de LR

Page 10: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

3. A GRE que gera o mesmo conjunto de cadeias de LR é o resultado da inversão das regras de GRDRev

©Clarisse S. de Souza, 2013 10

GRDRev

S b XS c XX b YY a YY ε

(b|c)ba*

GRE Final

S X bS X cX Y bY Y aY ε

a*b(b|c)

O valor de AF na busca da versão LL de LR

Page 11: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Aspectos interessantes de estruturas LR e LLA linguagem de programação

PROLOG (baseada em lógica, muito utilizada em aplicações de Inteligência Artificial), tem facilidades interessantes para se trabalhar com ‘Gramáticas’.

Uma destas facilidades é um formalismo denominado “Definite Clause Grammars” ou DCG.

Neste formalismo, a GRD inicial (que gera LR) se escreve assim:

s --> [a], s.s --> [b], x.x --> [b].x --> [c].

©Clarisse S. de Souza, 2013 11

O uso de ‘[ ]’ marcaos terminais do alfabetode GRD. Os demaisliterais marcam os nãoterminais do vocabuláriode GRD.

Page 12: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Execução de uma “consulta à base gramatical”

©Clarisse S. de Souza, 2013 12

Base Gramatical

s(S,[]).

Mostre TODAS as formas deinstanciar avariável “S” detal modo aSATISFAZER a(s)regra(s) relativa(s)ao nó “s” dagramática.

Page 13: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Como o Prolog busca “respostas” para consultas

Uma consulta constitui uma “meta” a ser provada.O Prolog busca satisfazer a “meta” em questão, varrendo

toda a sua base de fatos e regras, de cima para baixo, da esquerda para a direita.

Ao encontrar uma condição que satisfaz a meta, uma resposta é produzida e a busca por uma nova resposta possível é retomada.

Observem no próximo slide o que ocorre se alteramos a ordem das cláusulas na base gramatical do programa.

©Clarisse S. de Souza, 2013 13

Page 14: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

“Stack Overflow” se 1a cláusula da base é recursiva

©Clarisse S. de Souza, 2013 14

Se a regra recursivas --> [a], s. for retiradada base gramatical(ou reposicionada) podem-sefazer novamente consultas sem riscos de “stack overflow”.

Page 15: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

A GRE gera a linguagem reversa de LR (LRev)

©Clarisse S. de Souza, 2013 15

GRE=GRD invertida(gera LRev)

Page 16: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

A GRDRev (GRD que gera a linguagem LRev)

©Clarisse S. de Souza, 2013 16

Page 17: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

A GRE equivalente à GRD, ambas gerando a*b(b|c)

©Clarisse S. de Souza, 2013 17

Quase... Por que o “stack overflow”?

Várias ordensalternativas dasregras vão sempreacabar em “overflow”.A menos de um desviode controle na estruturade execução, o Prologtem problemas com estruturas que se expandem “à esquerda” (ou “primeiro” [antes] doque uma solução que éterminal, não se expande).O teste de alternativasfrequentemente leva a“overflow”.

Eis um exemplo de por queinteressa saber e poderconverter LL’s em LR’s!Se recebemos uma baseLL para trabalhar, podemostransformá-la em LR.Da mesma forma perceberque as condições deparada devem preceder asde expansão é fundamental.

Page 18: Linguagens Formais e Autômatos (LFA) - Departamento de ...inf1626/docs/2013/slides/LFA-aula11.pdf · Informática PUC-Rio INF1626 Linguagens Formais e Autômatos (2013-2) Linguagens

InformáticaPUC-RioINF1626 Linguagens Formais e Autômatos (2013-2)

Exercícios

Criar uma GRE para LR’s definidas a seguir:

1. S a A; A b C; A b D ; C c C; C c; D d

2. (a(b|c)*)+ | d*e+

3. AF

©Clarisse S. de Souza, 2013 18