Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


COMP aula3, Notas de aula de Informática

Compiladores ensinado por Patrick Pedreira.

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 01/12/2009

ygor-dos-santos-luz-3
ygor-dos-santos-luz-3 🇧🇷

4.7

(3)

55 documentos

1 / 23

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1

Este material é baseado nos materiais de autoria da profa. V. Feltrim
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Pré-visualização parcial do texto

Baixe COMP aula3 e outras Notas de aula em PDF para Informática, somente na Docsity!

Este material é baseado nos materiais de autoria da profa. V. Feltrim



^

Alfabeto ou vocabulário

): conjunto finito não

vazio de símbolos; símbolo é um elementoqualquer de um alfabeto ^

Exemplo: {a,b}, {0,1,2,3,4,5}

^

Cadeia

,^ β

, etc.): concatenação de símbolos

de um alfabeto; define-se como cadeia vazia ounula uma cadeia que não contém símbolo algum ^

Exemplo: aab, 12304,

^

(ou

ε^ = cadeia nula)



^

Representação de linguagens

: 3 mecanismos

básicos ^

Enumeração exaustiva das cadeias ^

Viável somente para conjuntos pequenos ^

Regras de aceitação de cadeias ^

Reconhecedores, autômatos ^

Regras de formação de cadeias ^

Gramáticas

(geração



derivação)



^

Formalmente, as gramáticas

são definidas por

quádruplas ^

G=(Vn, Vt, P, S) ^

Vn : conjunto de símbolos não-terminais da gramática ^

Vt: conjunto de símbolos terminais da gramática, os quaisconstituem as sentenças da linguagem ^

P: conjunto de regras de produção, responsáveis por produziras sentenças da linguagem ^

S: símbolo inicial da gramática, por onde se começa aderivação de sentenças



^

Exemplo: Dada a seguinte gramática: ^

G=({S,A,B}, {a,b}, P, S)P: S

AB

A^ 

a

B^ 

bB | b

^

Simule algumas derivações e descubra qual alinguagem produzida por essa gramática



^

Exemplo: Dada a seguinte gramática: ^

G=({S,A,B}, {a,b}, P, S)P: S

AB

A^ 

a

B^ 

bB | b

^

Qual a linguagem produzida por essa gramática? ^

{ab

n^ : n>0}

^

Exemplo ^

G=({S,A,B}, {a,b}, P, S)P: S

AB
A^ 

a B^ 

bB | b

^

Qual a linguagem produzida por essa gramática? ^

{ab

n^ : n>0}

^

Faça a árvore de derivação para a cadeia

abb

Árvore de Derivação: ^ A raiz é o símbolo inicial da gramática; ^ Os vértices interiores obrigatoriamentesão variáveis. Se A é um vértice interiore X1, X2, ...,Xn são os filhos de A, entãoA

→^ X1X2...Xn é uma produção dagramática e os vértices X1, X2, ...,Xnestão ordenados da esquerda para adireita; ^ Um vértice folha é um símbolo terminal,ou o símbolo vazio. Neste caso, o vazioé o único filho de seu pai (A

→ λ

).

^

Duas gramáticas G1 e G2 são equivalentes se produzem amesma linguagem ^

L(G1) = L(G2) ^

Uma sentença é ambígua se existem duas ou mais seqüênciasde derivação que a define ^

Uma gramática é ambígua se possui alguma sentença ambígua ^

Exemplo: essa gramática é ambígua?

E^ 

E + E | E * E | (E) | a

Teste para a sentença

a+a*a



^

Conforme as restrições impostas ao formato das produçõesde uma gramática, a classe de linguagens que tal gramáticagera varia correspondentemente ^

A teoria mostra que há quatro classes de gramáticas

capazes

de gerar quatro classes correspondentes de linguagens, deacordo com a denominada Hierarquia de Chomsky ^

Gramáticas com Estrutura de Frase ou Tipo 0 ^

Gramáticas Sensíveis ao Contexto ou Tipo 1 ^

Gramáticas Livres de Contexto ou Tipo 2 ^

Gramáticas Regulares ou Tipo 3

Usadas naconstrução decompiladores



^

Restrição

: no lado esquerdo da regra há apenas um

símbolo não-terminal ^

Exemplo:^ ^

G = ({S,A,B},{a,b},P,S)P: S

AB
A^ 

aA | a B^ 

bB | b

A substituição do não-terminal não levaem conta o seu contexto



^

Produções restritas a: ^

A^ 

aB ^

A^ 

a ^

A^ 

λ A, B

∈^

Vn, a

∈^

Vt

^

Exemplo: ^

G = ({S},{a,b},P,S)P: S



aS S^



b

Perceba que, pela restriçãoimposta, não é possívelcontrolar (comparar) o númerode repetições de símbolosarbitrários.

ou^

Este exemplo é

linear à

direita

. Se as produções fossem A

^

Ba | a, seria

linear à esquerda



^

Produções restritas a: ^

A^ 

aB ^

A^ 

a ^

A^ 

c A, B

∈^

Vn, a

∈^

Vt

^

Exemplo:

qual a linguagem?

^

G = ({S},{a,b},P,S)P: S



aS S^ 

b

Perceba que, pela restriçãoimposta, não é possívelcontrolar (comparar) o númerode repetições de símbolosarbitrários.

L(G)={a

n^ b: n>0}



^

Alfabeto ^

Terminais que compõem as sentenças da linguagem ^

Operações básicas

:

^

União (escolha entre alternativas) ^

Meta-símbolo: | ^

Concatenação (justaposição) ^

Normalmente o meta-símbolo é omitido ^

Fecho (repetição) ^

“de Kleene”



zero ou mais vezes

^

Meta-símbolo:

^

Positivo



uma ou mais vezes

^

Meta-símbolo: +



^

Uma expressão regular longa pode ser substituída porum

nome

, por conveniência de notação

^

Esse nome é chamado

Definição regular

^

Não pode ser recursiva, caso contrário a geração nãoterminaria ^

Ex.:

dígito

= (0|1|2|3|4|5|6|7|8|9) número =

dígito dígito

^

Precedência: ^

O fecho tem a maior precedência ^

A união tem a menor precedência ^

Concatenação tem precedência sobre união ^

Para alterar a precedência: ^

Uso de parênteses simples

dígito

é uma definição regular