















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Compiladores ensinado por Patrick Pedreira.
Tipologia: Notas de aula
1 / 23
Esta página não é visível na pré-visualização
Não perca as partes importantes!
















Este material é baseado nos materiais de autoria da profa. V. Feltrim
^
^
^
Viável somente para conjuntos pequenos ^
Reconhecedores, autômatos ^
Gramáticas
(geração
derivação)
^
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
^
^
Simule algumas derivações e descubra qual alinguagem produzida por essa gramática
^
^
Qual a linguagem produzida por essa gramática? ^
{ab
n^ : n>0}
^
Exemplo ^
G=({S,A,B}, {a,b}, P, S)P: S
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
^
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
aA | a B^
bB | b
A substituição do não-terminal não levaem conta o seu contexto
^
Produções restritas a: ^
aB ^
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: ^
aB ^
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: +
^
^
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
^
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