• Nenhum resultado encontrado

Linguagens Livres do Contexto. Adaptado de H. Brandão

N/A
N/A
Protected

Academic year: 2021

Share "Linguagens Livres do Contexto. Adaptado de H. Brandão"

Copied!
88
0
0

Texto

(1)

Linguagens Livres do Contexto

(2)

Linguagens Livres do Contexto

(3)

Linguagens Livres do Contexto

• Para as LLC, temos as Gramáticas Livres do Contexto;

• Tais gramáticas podem descrever certas características que possuem estrutura recursiva, o que as torna úteis em uma variedade de aplicações;

(4)

Linguagens Livres do Contexto

• Para as LLC, temos as Gramáticas Livres do Contexto; • Tais gramáticas podem descrever certas características

que possuem estrutura recursiva, o que as torna úteis em uma variedade de aplicações;

• GLC foram primeiramente utilizadas no estudo de linguagens humanas;

(5)

Linguagens Livres do Contexto

• Para as LLC, temos as Gramáticas Livres do Contexto; • Tais gramáticas podem descrever certas características

que possuem estrutura recursiva, o que as torna úteis em uma variedade de aplicações;

• GLC foram primeiramente utilizadas no estudo de linguagens humanas;

• Exemplo de estudo:

“Tribo do Amazonas causa guerra na lingüística”

(6)

Linguagens Livres do Contexto

• Uma aplicação importante de GLC ocorre na especificação e compilação de linguagens de programação;

(7)

Linguagens Livres do Contexto

• Uma aplicação importante de GLC ocorre na especificação e compilação de linguagens de programação;

• A maioria dos compiladores e interpretadores contém um componente chamado analisador sintático que extrai o significado de um programa antes e gerar o código

(8)

Linguagens Livres do Contexto

• Várias metodologias facilitam a construção de um analisador uma vez que a GLC esteja disponível;

(9)

Linguagens Livres do Contexto

• Várias metodologias facilitam a construção de um analisador uma vez que a GLC esteja disponível;

• Algumas ferramentas até geram automaticamente o analisador a partir da gramática;

(10)

Linguagens Livres do Contexto

• Várias metodologias facilitam a construção de um analisador uma vez que a GLC esteja disponível;

• Algumas ferramentas até geram automaticamente o analisador a partir da gramática;

• A coleção de linguagens associadas com GLC são

(11)

Linguagens Livres do Contexto

• Várias metodologias facilitam a construção de um analisador uma vez que a GLC esteja disponível;

• Algumas ferramentas até geram automaticamente o analisador a partir da gramática;

• A coleção de linguagens associadas com GLC são

denominadas Linguagens Livres do Contexto (LLC); • Elas incluem todas as linguagens regulares e muitas

(12)

Linguagens Livres do Contexto

Recursivamente enumeráveis Recursivas

Sensíveis ao contexto Livres regulares contexto

(13)

Linguagens Livres do Contexto

• Um exemplo de GLC:

• Por exemplo, a gramática apresentadas gera a cadeia 000#111.

(14)

Linguagens Livres do Contexto

• Um exemplo de GLC:

• Cadeia:

(15)
(16)
(17)

Exemplos de LLC

• As cadeiras ▫ a+a*a

▫ (a+a)*a

(18)

Exemplos de LLC

• As cadeiras ▫ a+a*a

▫ (a+a)*a

• podem ser geradas com a gramática apresentada;

• Um compilador traduz o código escrito em uma linguagem de programação para outra forma mais adequada para a execução;

(19)

Exemplos de LLC

• As cadeiras ▫ a+a*a

▫ (a+a)*a

• podem ser geradas com a gramática apresentada;

• Um compilador traduz o código escrito em uma linguagem de programação para outra forma mais adequada para a execução;

• Para fazer isso, o compilador extrai o significado do código em um processo chamado análise sintática;

(20)

Exemplos de LLC

• a+a*a

• (a+a)*a

• Para extrair o significado real (executável) da expressão, o compilador geralmente utiliza de uma das duas estratégias:

Top-down

(21)

• Derivação para a cadeia: ▫ a+a*a

(22)

• Derivação para a cadeia: ▫ a+a*a

(23)

• Derivação para a cadeia: ▫ a+a*a

EXPR TERMO

EXPR

(24)

TERMO

• Derivação para a cadeia: ▫ a+a*a

EXPR

TERMO

EXPR

(25)

TERMO

• Derivação para a cadeia: ▫ a+a*a EXPR TERMO FATOR EXPR +

(26)

TERMO

• Derivação para a cadeia: ▫ a+a*a EXPR TERMO FATOR a EXPR +

(27)

• Derivação para a cadeia: ▫ a+a*a EXPR TERMO TERMO * FATOR TERMO FATOR a EXPR +

(28)

• Derivação para a cadeia: ▫ a+a*a EXPR TERMO FATOR * TERMO FATOR TERMO FATOR a EXPR +

(29)

• Derivação para a cadeia: ▫ a+a*a EXPR TERMO FATOR * TERMO FATOR a TERMO FATOR a EXPR +

(30)

• Derivação para a cadeia: ▫ a+a*a EXPR TERMO * TERMO FATOR a FATOR a TERMO FATOR a EXPR +

(31)

Feita uma seqüência completa, dizemos que a

expressão passou pela análise sintática, e ela pertence a linguagem que a gramática é capaz de gerar.

EXPR TERMO * TERMO FATOR a FATOR a TERMO FATOR a EXPR +

(32)

• Além dos conceitos relacionados com gramáticas, o compilador precisa gerar uma estrutura capaz de executar em uma máquina.

EXPR TERMO * TERMO FATOR a FATOR a TERMO FATOR a EXPR +

(33)

• A execução depende da natureza da máquina; • Existem, por exemplo:

▫ Máquina baseada em pilha;

 Comumente utilizada na implementação de JVMs;

▫ Máquina baseada em registradores;

 Utiliza variáveis para registrar resultados intermediários;

(34)

• Vamos apresentar um exemplo de execução da expressão na máquina baseada em pilha:

▫ O primeiro passo é identificar elementos que são relevantes ao processamento (não são itens

(35)

• Vamos apresentar um exemplo de execução da expressão na máquina baseada em pilha:

▫ O primeiro passo é identificar elementos que são relevantes ao processamento (não são itens

(36)

• Identificados os elementos, eles devem ser adicionados em uma pilha seguindo o percurso Pré-ordem;

(37)
(38)
(39)
(40)

• Pré-ordem:

• A expressão é uma SOMA

SOMA

(41)

• Pré-ordem:

• A expressão é uma variável:

▫ Exemplo: 10

PILHA

10 SOMA

(42)

• Pré-ordem: • A expressão é uma multiplicação; PILHA MULT. 10 SOMA

(43)

• Pré-ordem: • Variável... PILHA 10 MULT. 10 SOMA

(44)

• Pré-ordem: • Variável... PILHA 10 10 MULT. 10 SOMA

(45)

• Dada a pilha, a máquina pode avaliar toda a expressão: SOMA PILHA 10 MULT. 10 10

(46)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ Desempilha:  R1 = 10; PILHA 10 10 MULT. 10 SOMA

(47)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ Desempilha:  R1 = 10; ▫ Desempilha:  R2 = 10; PILHA 10 MULT. 10 SOMA

(48)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ Desempilha:  R1 = 10; ▫ Desempilha:  R2 = 10; ▫ Desempilha:  Executar multiplicação: R1 * R2 PILHA MULT. 10 SOMA

(49)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ O resultado da multiplicação é empilhado:  100 PILHA 100 10 SOMA

(50)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ Desempilha:  R1 = 100; PILHA 100 10 SOMA

(51)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ Desempilha:  R1 = 100; ▫ Desempilha:  R2 = 10; PILHA 10 SOMA

(52)

• Dada a pilha, a máquina pode avaliar toda a expressão: ▫ Desempilha:  R1 = 100; ▫ Desempilha:  R2 = 10; ▫ Desempilha:

 Executar a operação de SOMA:

 R1+R2

PILHA

(53)

• Dada a pilha, a máquina pode avaliar toda a expressão:

▫ O resultado da soma é empilhado:

 110;

110

(54)

• Dada a pilha, a máquina pode avaliar toda a expressão:

▫ Desempilha:

 R1=110;

PILHA

(55)

• Dada a pilha, a máquina pode avaliar toda a expressão:

▫ Desempilha:

 R1=110;

▫ Topo da pilha aponta pra nulo:  Pilha vazia!

 Indica que R1 possui o resultado da expressão avaliada!!!

(56)

PILHA 10 10 MULT. 10 SOMA

• Relação com compiladores e arquitetura...

• Relação com compiladores e estrutura de dados...

(57)
(58)

Autômato com Pilha

• Semelhante ao autômato finito determinístico, mas com uma componente adicional:

(59)

Autômato com Pilha

• Semelhante ao autômato finito determinístico, mas com uma componente adicional:

▫ A pilha!

a b a a b

Autômato Finito Controle de

(60)

Controle de estado a b a a b a b a a b X Y Y X

Autômato com Pilha

• Semelhante ao autômato finito determinístico, mas com uma componente adicional:

▫ A pilha!

Autômato com Pilha Controle de

estado Autômato Finito

(61)

Autômato com Pilha

• Um autômato com pilha (AP) pode escrever símbolos sobre a fita e lê-los de volta mais tarde;

(62)

Autômato com Pilha

• Um autômato com pilha (AP) pode escrever símbolos sobre a fita e lê-los de volta mais tarde;

• Escrever um símbolo “empurra para baixo” todos os outros símbolos sobre a pilha;

Controle de estado a b a a b X Y Y X

(63)

Autômato com Pilha

• Em qualquer momento, o símbolo no topo da pilha pode ser lido e removido;

▫ O restante dos símbolos da pilha “volta a subir”;

▫ Política: LIFO

Last in, first out!

Controle de estado a b a a b X Y Y X

(64)

Autômato com Pilha

• Nos APs, a fila possui utilidade porque ela pode conter uma quantidade ilimitada de informação;

(65)

Autômato com Pilha

• Nos APs, a fila possui utilidade porque ela pode conter uma quantidade ilimitada de informação;

• Relembrando: um AFD é incapaz de reconhecer {anbn| n>0}

Ele não é capaz de reconhecer porque possui memória limitada em torno do seu conceito de estado.

(66)

Autômato com Pilha

• Nos APs, a fila possui utilidade porque ela pode conter uma quantidade ilimitada de informação;

• Relembrando: um AFD é incapaz de reconhecer {anbn| n>0}

Ele não é capaz de reconhecer porque possui memória limitada em torno do seu conceito de estado.

• Já os APs podem armazenar elementos em uma quantidade ilimitada (em sua pilha);

(67)

Autômato com Pilha

• Mecanismo informal para reconhecer a linguagem {anbn| n>0}

utilizando uma pilha:

Leia símbolos da entrada. A medida que cada 0 é lido, empilhe-o. Assim que 1’s são vistos, desempilhe um 0 da pilha para cada 1 lido. Se a leitura da entrada

termina exatamente quanto a pilha fica vazia de 0’s, aceite a entrada. Se a pilha fica vazia enquanto 1’s permanecem ou se os 1’s terminam enquanto a pilha

ainda contém 0’s ou se quaisquer 0’s aparecem na entrada seguindo 1’s, rejeite a entrada.

(68)
(69)

Autômato com Pilha

(70)

Autômato com Pilha

• Os autômatos com pilha podem ser não-determinísticos;

• Os APs não-determinísticos não são equivalentes em poder se

comparados aos APs determinísticos, diferentemente da relação que existia entre AFNs e AFDs;

(71)

Autômato com Pilha

• Os autômatos com pilha podem ser não-determinísticos;

• Os APs não-determinísticos não são equivalentes em poder se

comparados aos APs determinísticos, diferentemente da relação que existia entre AFNs e AFDs;

• Nos nossos estudos, vamos focar nos APs não-determinísticos porque estes reconhecem as linguagens livres do contexto;

(72)
(73)
(74)

Autômato com Pilha

• Antes de desenharmos um autômato...

• Escrevermos "a,bc" para indicar que quando a máquina está lendo o símbolo a da palavra de entrada ela pode substituir b no topo da pilha por um c.

(75)

Autômato com Pilha

• Antes de desenharmos um autômato...

Escrevermos "a,bc" para indicar que quando a máquina está lendo o símbolo a da palavra de entrada ela pode substituir b no topo da pilha por um c.

(76)

Autômato com Pilha

• Antes de desenharmos um autômato...

Escrevermos "a,bc" para indicar que quando a máquina está lendo o símbolo a da palavra de entrada ela pode substituir b no topo da pilha por um c.

a, b ou c podem ser símbolos vazios:

Se a é vazio: a máquina pode fazer a transição sem consumir um símbolo da palavra e entrada;

(77)

Autômato com Pilha

• Antes de desenharmos um autômato...

Escrevermos "a,bc" para indicar que quando a máquina está lendo o símbolo a da palavra de entrada ela pode substituir b no topo da pilha por um c.

a, b ou c podem ser símbolos vazios:

Se a é vazio: a máquina pode fazer a transição sem consumir um símbolo da palavra e entrada;

Se b é vazio: a máquina pode fazer a transição sem desempilhar nenhum símbolo da pilha;

(78)

Autômato com Pilha

• Antes de desenharmos um autômato...

Escrevermos "a,bc" para indicar que quando a máquina está lendo o símbolo a da palavra de entrada ela pode substituir b no topo da pilha por um c.

a, b ou c podem ser símbolos vazios:

Se a é vazio: a máquina pode fazer a transição sem consumir um símbolo da palavra e entrada;

Se b é vazio: a máquina pode fazer a transição sem desempilhar nenhum símbolo da pilha;

Se c é vazio: a máquina pode fazer a transição sem empilhar nenhum símbolo na pilha.

(79)
(80)

Autômato com Pilha

{ a

n

b

n

| n >= 0 }

(81)

Autômato com Pilha

Exercício:

crie um AP que reconheça a linguagem

(82)

Autômato com Pilha

{ww

R

|w{0,1}

*

}

(83)

Exemplos

L={anbn n  0} (b,X,) S1 (a,,X) (b,X, ) S0

(84)

Exemplos

L = wcwR : w{ a,b}* (c,, ) S1 (a,,X) (a,X,) S0 (b,,Y) (b,Y,)

(85)

Exemplos

L={anbman+m n  0, m  0} (b,,A) S2 S0 (a,, A) (a,A,) ( a,A,) (b,,A)

(86)
(87)
(88)

Bibliografia

• SIPSER, Michael. Introdução à Teoria da Computação. 2a ed.:São Paulo, Thomson, 2007.

• VIEIRA, Newton José. Introdução aos Fundamentos da Computação: Linguagens e Máquinas. 1a ed.: Rio de Janeiro: Thomson, 2006.

Referências

Documentos relacionados

Bicaco e, de acordo com a Lei nº 1.561/2003, a qual estabelece o plano de carreira para os servidores públicos municipais, ele poderá ingressar no serviço público centralizado

O Laboratório poderá declarar em seus certificados de calibração, incertezas de medição maiores que a sua CMC, devido às contribuições relativas ás propriedades ou

seu represenlante na cõrte dc Paris as neeesstirias iistriicções e poderes para resolver as objcôes que por ventura A acoitaçflo (10 mesmo contracto, tal qual.

Na sequência de seu texto, Derrida, assinala que “um certo tipo de enunciados sobre a       verdade se deu, multiplicou, num momento preciso, na forma de sistema” em Lacan...

a) cada uma das partes constituirá um novo imã. c) O imã, formado pela parte C, terá um pólo norte na extremidade esquerda e um pólo sul na extremidade direita. Sempre que

Com base no texto, assinale a afirmativa correta. A) As crianças da classe média são prisioneiras da televisão. B) Os meninos ricos e pobres são tratados igualmente pela sociedade.

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

A contribuição original reside no objeto de estudo, o conjunto dos projetos não construídos em São Paulo, no método de análise com maquetes físicas e no objetivo de