• Nenhum resultado encontrado

TEORIA DA COMPUTAÇÃO UNIDADE 2: AUTÔMATOS E LINGUAGENS AULA 3: AMBIGUIDADE E REGRA DE CHOMSKY PROFESSOR: LUCAS CAMBUIM

N/A
N/A
Protected

Academic year: 2021

Share "TEORIA DA COMPUTAÇÃO UNIDADE 2: AUTÔMATOS E LINGUAGENS AULA 3: AMBIGUIDADE E REGRA DE CHOMSKY PROFESSOR: LUCAS CAMBUIM"

Copied!
31
0
0

Texto

(1)

TEORIA DA COMPUTAÇÃO

UNIDADE 2: AUTÔMATOS E LINGUAGENS

AULA 3: AMBIGUIDADE E REGRA DE CHOMSKY

PROFESSOR: LUCAS CAMBUIM

(2)

 Vejamos a gramática abaixo:

 <EXPR> → <EXPR> + <EXPR> | <EXPR> x <EXPR>

| (<EXPR>) | a

Para a cadeia a + a x a temos as seguintes árvores sintáticas:

(3)

 Vejamos a gramática abaixo:

 <EXPR> → <EXPR> + <EXPR> | <EXPR> x <EXPR>

| (<EXPR>) | a

Para a cadeia a + a x a temos as seguintes árvores sintáticas:

(4)

Esta gramática gera a palavra a + a x a de forma ambígua;

Ambiguidade

(5)

Esta gramática gera a palavra a + a x a de forma ambígua;

 Pois é possível obter duas árvores sintáticas diferentes;

Ambiguidade

(6)

Esta gramática gera a palavra a + a x a de forma ambígua;

 Pois é possível obter duas árvores sintáticas diferentes;

 Se uma gramática gera alguma cadeia ambiguamente, dizemos que a gramática é ambígua.

(7)

Esta gramática gera a palavra a + a x a de forma ambígua;

 Pois é possível obter duas árvores sintáticas diferentes;

 Se uma gramática gera alguma cadeia ambiguamente, dizemos que a gramática é ambígua.

 As derivações podem mudar alterando a ordem de substituição das variáveis;

(8)

Esta gramática gera a palavra a + a x a de forma ambígua;

 Pois é possível obter duas árvores sintáticas diferentes;

 Se uma gramática gera alguma cadeia ambiguamente, dizemos que a gramática é ambígua.

 As derivações podem mudar alterando a ordem de substituição das variáveis;

 Perceba que estamos falando que a palavra tem duas árvores sintáticas diferentes, não duas derivações

diferentes;

(9)

Esta gramática gera a palavra a + a x a de forma ambígua;

 Pois é possível obter duas árvores sintáticas diferentes;

 Se uma gramática gera alguma cadeia ambiguamente, dizemos que a gramática é ambígua.

 As derivações podem mudar alterando a ordem de substituição das variáveis;

 Perceba que estamos falando que a palavra tem duas árvores sintáticas diferentes, não duas derivações

diferentes;

 Ambiguidade pode ser indesejável para certas aplicações, como em linguagens de programação, onde um dado

programa deve ter uma única interpretação.

Ambiguidade

(10)

Para focarmos na estrutura, vamos definir um tipo

de derivação que substitui as variáveis em uma

ordem fixa;

(11)

Para focarmos na estrutura, vamos definir um tipo

de derivação que substitui as variáveis em uma

ordem fixa;

Uma derivação de uma palavra w em uma

gramática G é a derivação mais a esquerda se a

cada etapa, a variável mais a esquerda é a

substituída;

(12)

Para focarmos na estrutura, vamos definir um tipo

de derivação que substitui as variáveis em uma

ordem fixa;

Uma derivação de uma palavra w em uma

gramática G é a derivação mais a esquerda se a

cada etapa, a variável mais a esquerda é a

substituída;

No caso da palavra a + a x a, ela possui duas

árvores sintáticas, utilizando o mesmo tipo de

derivação (a mais a esquerda);

(13)

Uma palavra w é derivada ambiguamente em uma

gramática livre de contexto G se tem duas ou mais

derivações a esquerda. A gramática G é ambígua se

gera alguma palavra ambiguamente;

(14)

Uma palavra w é derivada ambiguamente em uma

gramática livre de contexto G se tem duas ou mais

derivações a esquerda. A gramática G é ambígua se

gera alguma palavra ambiguamente;

Em alguns casos, quando temos uma gramática

ambígua, podemos encontrar uma gramática não

ambígua que gera a mesma linguagem.

(15)

Uma palavra w é derivada ambiguamente em uma

gramática livre de contexto G se tem duas ou mais

derivações a esquerda. A gramática G é ambígua se

gera alguma palavra ambiguamente;

Em alguns casos, quando temos uma gramática

ambígua, podemos encontrar uma gramática não

ambígua que gera a mesma linguagem.

Porém, algumas linguagens livres de contexto só

podem ser geradas através de gramáticas ambíguas;

(16)

 Nós podemos simplificar gramáticas livres de contexto;

Forma Normal de Chomsky

(17)

 Nós podemos simplificar gramáticas livres de contexto;

Uma das formas mais simples e úteis é chamada de Forma

Normal de Chomsky;

(18)

 Nós podemos simplificar gramáticas livres de contexto;

Uma das formas mais simples e uteis é chamada de Forma Normal de Chomsky;

 Definição: Uma gramática está na Forma Normal de Chomsky se todas as regras estão na forma:

A → BC A → a

onde a é um terminal e A, B e C são variáveis. • B e C não podem ser a variável inicial;

• Em outras palavras a variável inicial S não pode aparecer no lado direito de nenhuma regra

Somente a variável inicial pode ter a regra S → ε.

(19)

Teorema: Qualquer linguagem livre de contexto é gerada

por uma gramática livre de contexto na Forma Normal de Chomsky;

Ideia de Prova: Podemos converter uma gramática G na

Forma Normal de Chomsky. A conversão é feita em etapas, onde as regras que violam as condições são substituídas por equivalentes e que são satisfatórias.

 Elimine todas as regras da forma A → ε;

 Elimine todas as regras da forma A → B (unárias);  Converta o restante das regras na forma proposta;

(20)

Prova:

Primeiro criamos uma nova variável inicial S

0

e a

regra S

0

→ S, onde S era a variável inicial;

Removemos as regras da forma A → ε, onde A

não é a variável inicial.

Então para cada ocorrência de A no lado direito

de uma regra, adicionamos uma nova regra com

a ocorrência removida.

Ex.: B → aA | A | AaA se torna B → a | ε | Aa | aA;

(21)

Prova:

Removemos agora as regras do tipo A → B;

Ex.: A → B e B → aA | ε | C

A → aA | ε | C;

Por fim, nós substituímos as regras da forma A →

u

1

...u

n

, onde n > 2 e cada u

i

sendo um terminal

ou variável por regras A → u

1

A

1

, A

1

→ u

2

A

2

,…,

A

k-2

→ u

k-1

u

k

;

(22)

S → ASA | aB

A → B | S

B → b | ε

(23)

Adicionamos a variável inicial 𝑆

0

e a

regra S0

→ S

S

0

→ S

S → ASA | aB

A → B | S

B → b | ε

Exemplo

(24)

Remova as regras 𝜖

S

0

→ S

S → ASA | aB

A → B | S

B → b | ε

Exemplo

S

0

→ S

S → ASA | aB | a

A → B | S | ε

B → b | ε

Antes Depois

(25)

Remova as regras 𝜖

S

0

→ S

S → ASA | aB | a

A → B | S | ε

B → b | ε

Exemplo

Depois

S

0

→ S

S → ASA | aB | a | SA | AS | S

A → B | S | ε

B → b

Antes

(26)

Remova as regras unárias

S

0

→ S | ASA | aB | a | SA | AS

S → ASA | aB | a | SA | AS | S

A → B | S

B → b

Exemplo

(27)

Remova as regras unárias

S

0

→ ASA | aB | a | SA | AS

S → ASA | aB | a | SA | AS

A → B | S | b

B → b

Exemplo

(28)

Remova as regras unárias

S

0

→ ASA | aB | a | SA | AS

S → ASA | aB | a | SA | AS

A → B | S | b | ASA | aB | a | SA | AS |

B → b

Exemplo

(29)

Converta as regras remanescentes para a forma

apropriada acrescentando variáveis e regras

adicionais.

S

0

→ AA

1

| A

2

B | a | SA | AS

S → AA

1

| A

2

B | a | SA | AS

A → b | AA

1

| A

2

B | a | SA | AS

B → b

A

1

→ SA

A

2

→ a

Exemplo

(30)

Exemplo 2

S

aSb | bSa | SS | ϵ

1) Criação de nova variável inicial:

S0

S

S

aSb | bSa | SS | ϵ

2) Eliminação de substituições ϵ :

S0

S | ϵ

(31)

Exemplo 2

3) Eliminação de regras unitárias:

S0

ϵ | aSb | bSa | SS | ab | ba

S

aSb | bSa | SS | ab | ba

4) Padronização:

S0

ϵ | AT | BU | SS | AB | BA

S

AT | BU | SS | AB | BA

T

SB

U

SA

A

a

B

b

33

Referências

Documentos relacionados

classificatório, com pontuação máxima de 100 (cem pontos) será ministrada na presença de uma banca examinadora e será constituída de uma aula, com duração de até 30

O Piccolo  AmLyte 13, utilizado com o Analisador Químico Piccolo Xpress  , destina-se a ser utilizado para a determinação quantitativa in vitro de alanina aminotransferase

par de símbolos a,b,c (para cada um).. 1 Alan Turing, em 1937, percebeu que o cálculo era um processo rígido, do tipo que podia ser seguido por uma máquina. Essa máquina iria

Inicializa Estados e copia Q1 para Q2 Inicializa Finais e copia F1 para F2 Inicializa Transições e copia 1 para 2.. de Souza,

Alguns dos teóricos envolvidos nesse movimento, como John Mikhail, partem de uma analogia com a teoria da gramática generativa de Chomsky para sugerir a existência de

Garanta que a variável inicial não ocorre do lado direito de nenhuma regra. Adicione variáveis novas e regras diádicas para substituir regras cujo lado direito tem mais de 2

Com as tecnologias de informação e comunicação (TIC), a gestão da informação então é a estrutura organizativa que, no modelo digital de empresa, governa com

PROGRAMA DE PREVENÇÃO PROGRAMA DE PREVENÇÃO DE RISCOS AMBIENTAIS DE RISCOS AMBIENTAIS - DOCUMENTO BASE - - DOCUMENTO BASE - MAIO 2002