• Nenhum resultado encontrado

03.6.LFA.APAnáliseBottomUp AP2

N/A
N/A
Protected

Academic year: 2019

Share "03.6.LFA.APAnáliseBottomUp AP2"

Copied!
27
0
0

Texto

(1)

DCC063

Linguagens Formais

e Autômatos

(2)

Análise sintática ascendente (Bottom-up)

 Construção de um AP que aceita uma LLC gerada

por uma GLC.

 Técnica simétrica àquela empregada para

transformar uma GLC em um AP não determinístico.

 Constrói uma árvore de análise sintática

partindo das folhas em direção à raiz, razão pela qual essa classe de métodos é chamada

ascendente.

Análise Sintática Descendente

Baseadas em AP

(3)

Análise sintática ascendente (Bottom-up)

 Sejam

 G = (N, T, P, S) uma gramática livre de contexto e

 M = (, , Q, p, F, ) o autômato de pilha a ser

construído a partir de G.

 Como M deve aceitar L(G), é claro que seu

alfabeto de entrada  tem que ser igual a T.

3

(4)

Análise sintática ascendente (Bottom-up)

 Construção de AP por meio de GLC

 o alfabeto de entrada  = T; (alfabeto de entrada é igual conjunto de terminais de G)

 o alfabeto da pilha  = TN; (alfabeto de pilha é a união de terminais e não terminais de G)

 o conjunto de estados Q = {p, q};

 o estado inicial p;

 o conjunto de estados finais F = {q};

4

(5)

Análise sintática ascendente (Bottom-up)

 a função de transição

 é definida por

5

Autômatos de Pilha

 

(  ) (   ) (   )  : QT   TN  * →QTN

(6)

Análise sintática ascendente (Bottom-up)

 As transições do tipo 1 empilham símbolos de

entrada;

 Transições do tipo 2 substituem o lado direito de

uma regra, contido na pilha, pelo correspondente lado esquerdo (o lado direito é encontrado ao revés na pilha);

 Transições do tipo 3 encerram uma computação

transitando para o estado final, deixando a pilha vazia ao retirar o S (não terminal inicial).

6

(7)

Análise sintática ascendente (Bottom-up)

 Exemplo. Desenvolver o AP M para a gramática:

E → E + T | T T → T * F | F F → (E) | id

7

(8)

Análise sintática ascendente (Bottom-up)

 Aplicando-se o método apresentado, obtém-se o

AP M:

1. (p, a, ) → (p, a) para cada a

2. (p, , T+E) → (p, E)

3. (p, , T) → (p, E)

4. (p, , F*T) → (p, T)

8

Autômatos de Pilha

E → E + T | T T → T * F | F F → (E) | id

5. (p, , F) → (p, T)

6. (p, , )E( ) → (p, F)

7. (p, , id) → (p, F)

(9)

Análise sintática ascendente (Bottom-up)

 Um computação para a entrada id*(id) é

mostrada abaixo:

9

Autômatos de Pilha

𝑝, 𝑖𝑑 ∗ 𝑖𝑑 , 𝜀 ⊢1

𝑝,∗ 𝑖𝑑 , 𝑖𝑑 ⊢7

𝑝,∗ 𝑖𝑑 , 𝐹 ⊢5

𝑝,∗ 𝑖𝑑 , 𝑇 ⊢1

𝑝, 𝑖𝑑 ,∗ 𝑇 ⊢1

𝑝, 𝑖𝑑), (∗ 𝑇 ⊢1

𝑝, ), 𝑖𝑑(∗ 𝑇 ⊢7

𝑝, ), 𝐹(∗ 𝑇 ⊢5

𝑝, ), 𝑇(∗ 𝑇 ⊢3

𝑝, ), 𝐸(∗ 𝑇 ⊢1

𝑝, 𝜀, )𝐸(∗ 𝑇 ⊢6

𝑝, 𝜀, 𝐹 ∗ 𝑇 ⊢4

𝑝, 𝜀, 𝑇 ⊢3

𝑝, 𝜀, 𝐸 ⊢8

𝑞, 𝜀, 𝜀

(10)

Análise sintática ascendente (Bottom-up)

 M é um dispositivo não-determinístico.

 Em qualquer ponto, M pode empilhar (shift,

deslocar) um terminal da cadeia de entrada.

 Da mesma forma, M pode reconhecer, no topo da

pilha, uma cadeia que corresponda ao lado direito invertido de uma regra de G, podendo assim reduzir (reduce) essa cadeia ao não terminal do lado esquerdo.

10

(11)

Análise sintática ascendente (Bottom-up)

 A sequência de regras, correspondentes aos

passos de redução, espelha, em ordem reversa, uma derivação mais a direita da entrada:

11

Autômatos de Pilha

E  T  T*F  T*(E)  T*(T)  T*(F)

(12)

 Tipos de Linguagem

Autômatos de 2 Pilhas

12

Tipo 0 Linguagens Irrestritas (rec. enumeráveis) Tipo 1 Linguagens Sensíveis ao Contexto

Tipo 2 Linguagens Livres de Contexto Tipo 3 Linguagens Regulares

(13)

Gramáticas sensíveis ao contexto (tipo 1) e gramáticas recursivamente enumeráveis (tipo 0)

13

Autômatos de 2 Pilhas

 Inclui todas as linguagens que podem ser

reconhecidas por uma máquina de Turing;

 Abrangem as outras gramáticas;  Tipo 0 ou Irrestritas:

 𝑃 = 𝛼 → 𝛽 𝛼 ∈ 𝑁 ∪ 𝑇 +, 𝛽 ∈ 𝑁 ∪ 𝑇 ∗

 A diferença entre essas gramáticas é que no tipo

1 (sensível ao contexto), obrigatoriamente 𝛼 ≤

(14)

Exemplos:

14

Autômatos de 2 Pilhas

 𝐺 = ൮

𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝑆 , 𝑎, 𝑏, 𝑐, 𝑑 , 𝑃 =

𝑆 → 𝐴𝐵 𝐴𝐵 → 𝐶𝑑𝐸𝐵

𝐴𝑏𝑐𝑑 → 𝑎𝑏𝐶𝐷𝐵𝑐𝑑 𝐵 → 𝑏

(15)

Exemplos: 𝐿𝑎𝑏𝑐 = 𝑎𝑛𝑏𝑛𝑐𝑛 𝑛 ≥ 0

15

Autômatos de 2 Pilhas

 𝐺 = 𝑆, 𝐴, 𝐵, 𝐶 , 𝑎, 𝑏, 𝑐 , 𝑃 =

𝑆 → 𝑎𝑆𝐵𝐶|𝜀 𝐶𝐵 → 𝐵𝐶

𝑎𝐵 → 𝑎𝑏 𝑏𝐵 → 𝑏𝑏 𝑏𝐶 → 𝑏𝑐

𝑐𝐶 → 𝑐𝑐

(16)

Principais características de AP de 2 Pilhas

16

Autômatos de 2 Pilhas

 Possuem poder computacional equivalente ao de

uma máquina de Turing;

 Diferentemente de autômatos com uma pilha, o

não-determinismo não aumenta seu poder computacional;

 Se um autômato com duas pilhas é equiparável à

(17)

Principais características de AP de 2 Pilhas

17

Autômatos de 2 Pilhas

 Errado. Um autômato com três ou mais pilhas

contém o mesmo poder computacional que um autômato de duas pilhas;

 Autômato com Duas Pilhas ou Autômato com

Pilhas possui a memória de entrada separada das memórias de trabalho e de saída;

 Essas estruturas auxiliares são do tipo pilha, e

(18)

Um AP de 2 Pilhas é composto por:

18

Autômatos de 2 Pilhas

Fita: dispositivo de entrada que contém a

informação a ser processada;

Duas Pilhas: memórias auxiliares que podem ser

usadas livremente para leitura e gravação;

Unidade de Controle, Cabeça da Fita, Função de

Transição e

Topo das Pilhas: move para cima ao gravar e para

(19)

Definição formal

19

Autômatos de 2 Pilhas

 Um AP de 2 pilhas é uma 6-tupla

𝑀 = (Σ, Γ, 𝑄, 𝑞1, 𝐹, 𝛿), onde:  Σ → alfabeto de entrada

 Γ → alfabeto das pilhas

 𝑄 → conjunto de estados

 𝛿 → função de transição

 𝑞1 → estado inicial

(20)

Definição formal

20

Autômatos de 2 Pilhas

 A função programa considera:

 o estado corrente;

 o símbolo lido da fita (pode ser omitido);

 o símbolo lido de cada pilha (pode ser omitido)

 Para determinar:

 o novo estado;

 e o símbolo gravado em cada pilha (pode ser

(21)

Representação da função programa

21

Autômatos de 2 Pilhas

p

𝜎, 𝛾, 𝑢, 𝛿, 𝑣

q

Estado anterior

Símbolo lido da fita

Estado novo

Símbolo lido da pilha 1 (topo)

Cadeia gravada na pilha 1 (topo)

Símbolo lido da pilha 2 (topo)

(22)

Exemplo: AP com 2 Pilhas

22

Autômatos de 2 Pilhas

 Desenvolver um AP2 M para  𝐿𝑎𝑏𝑐 = 𝑎𝑛𝑏𝑛𝑐𝑛 𝑛 ≥ 0 :

q p

(a, , a, , )

M

r

(b, a,,, c)

(b, a, ,, c)

(c,,, c,)

(23)

23

Autômatos de 2 Pilhas

 Desenvolver um AP2 para

𝐿𝑛2𝑛/2 = 𝑎𝑛𝑏2𝑛𝑐 𝑛2 𝑛 ≥ 0

Exemplo: AP com 2 Pilhas

q

(a, , bb, , c)

s

(b, b,,,)

(b, b, ,,)

(c,,, c,)

(c,,, c,)

r

(,,, c,)

t

(,,, c,)

p

(24)

24

Autômatos de 2 Pilhas

 Desenvolver um AP2 para

𝐿𝑎=𝑏=𝑐 = 𝑤 𝑤 ∈ 𝑎, 𝑏, 𝑐 ∗, 𝑤 𝑎 = 𝑤 𝑏 = 𝑤 𝑐

Exemplo: AP com 2 Pilhas

q p

(a, , , $, a$)

(,, $,, $)

(b, , , $, b$) (c, , , $, c$) (a, $, a$, , )

(b, $, b$, , ) (c, $, c$, , )

(a, , , a, aa) (b, , , b, bb)

(c, , , c, cc) (a, a, aa, , )

(b, b, bb, , ) (c, c, cc, , )

r

(, $, , $,)

(a, b, , c, ) (a, c, , b, ) (b, a, , c, )

(c, b, , a, )

(25)

Complexidade das conversões em

LLC

 Conversões lineares no comprimento da

representação  GLC para AP

 AP de estado final para AP de pilha vazia

 AP de pilha vazia para AP de estado final

 Conversão O(n3)

 AP para GLC (tamanho da GLC também O(n3))

 Conversão O(n2)

 GLC para FNC (tamanho da FNC também O(n2))

(26)

Propriedades de decisão das LLC

 Teste de linguagem vazia

 Verificar se S é gerador

◼ Com estrutura de dados adequada, O(n)

 Teste de pertinência numa LLC

 O(n3), usando programação dinâmica,

preenchimento de tabela

S → AB | BC A → BA | a B → CC | b C → AB | a w = baaba

{S,A,C}

{S,A,C}

{B} {B}

{S,A} {B} {S,C} {S,A}

{B} {A,C} {A,C} {B} {A,C}

b a a b a

(27)

Problemas não decidíveis em LLC

 Não há algoritmo para responder a estas

perguntas:

 Uma dada GLC é ambígua?

 Uma dada LLC é inerentemente ambígua?

 A interseção de duas LLC é vazia?

 Duas LLC dadas são a mesma linguagem?

 Uma LLC é o “universo” *, em que  é o seu

alfabeto?

Referências

Documentos relacionados

Um dos problemas com a decisão do governo de reduzir drasticamente a lista de ex-tarifários é que a medida não foi universal, isto é, conservou-se a isenção para grande número

*O tempo limite poderá ser alterado para mais, em alguma etapa específica, dependendo dos percursos que serão definidos, portanto, participe do congresso técnico e fique atento

ao final do processamento da mesma, a pilha estiver vazia, independentemente do estado em que o AP se encontra;. P

Serão abordados, aqui, os aspectos relativos ao comportamento da superfície livre d’água e dos turbilhões nos degraus, à posição de início de aeração e

a) excessivamente: Não convém comer demais à noite. c) além disso: Não fui à praia porque estava frio; demais, estava com preguiça. d) os outros, os restantes: Apenas os

ano do Ensino Fundamental. Ainda, levamos em consideração a Teoria dos Campos Conceituais. Assim, na escolha das questões demos importância a natureza das situações, os

O estudo e desenvolvimento de CC associa outras áreas de conhecimento, como, por exemplo, a produção de hidrogênio (combustível da CC) a partir da reforma de outros

INDIVIDUAL / FAMILIAR DescriçãoRede PrópriaRede Credenciada Item 1 (urgência e emergência)24 horas24 horas Item 2 e 3 (consultas e exames laboratoriais simples)15 dias30 dias Item