Você está na página 1de 7

Josué Lobo

0) São eles o top-down que realiza a derivação mais à esquerda e bottom-up que realiza
a redução mais à esquerda de uma cadeia.
1) ASD e ASA são aplicáveis em quase todos os casos, mas com eficiência apenas a certas
subclasses gramaticais, sendo elas a LL e LR, sendo em sua maioria descritas por
gramaticas LL e LR.
2) ASD com retrocesso, preditivo, recursivo e não recursivo
3)

4) A cada passo, escolhe uma regra e replica, Se falhar em algum ponto, retrocede e
escolhe outra regra, O processo termina quando a cadeia é reconhecida ou quando as
regras se esgotam e a cadeia não foi reconhecida
5) Analisa os tokens e vai construindo a arvore de acordo com eles
6) A
7) Da mesma forma que o Recursivo, porem não pode haver recursão a esquerda e suas
produções estejam adequadamente fatoradas
8) LL(1)
9) Possui duas regras, sendo elas a de transformação e tradução, e requerem uma
gramatica LL(1)
10) Procedimentos possivelmente recursivos, um para cada não terminal a ser derivado
11)

12) Regra de tradução que faz o mapeamento dos grafos em procedimento


13) procedimento A
begin
se (simbolo='x') então obter_simbolo
senão se (simbolo='(') então
obter_simbolo;
A;
enquanto (simbolo='_') faça
obter_simbolo;
A;
se (simbolo=')')
então obter_simbolo
senão ERRO;
senão ERRO;
End

14) Eliminar a recursividade a esquerda; fatoração


15) A → βA’
A’ → αA’ |ε
16) E → TE’
E’ → +TE’ |ε
T → FT’
T’ → *FT’ |ε
F → (E) | id

S → Aa | b
A → bdA’ | A’
A’ → cA’ | adA’ |ε
17) C → i(E)CC’ | a
C’ → eC |ε
E→b

18)

19)
20) Não necessita de retrocesso; o símbolo da cadeia de entrada, em analise, é suficiente
para determinar qual regra de produção deve ser escolhida; são construídos utilizando
gramaticas LL(1)
21) Eliminar recursividade a esquerda; fatorar a gramatica; construir os conjuntos first e
follow

22)
23) Seja X o símbolo no topo da pilha
Seja a o símbolo de entrada (que é terminal) a analisar
1. Se X = $ e a = $ -> finaliza e reconhece a entrada
2. Se X = a e != $ -> desempilha X e avança de um símbolo na entrada
3. Se X não é terminal: Consulta a tabela M(X, a)
a. Se for vazia: ERRO
b. Se contem X ::= UVW, então substitui na pilha X por UVW (U no
topo)

24)

25)
26) while ((topo da pilha for <> $) and (próximo símbolo for <> $)) do
if (topo da pilha for o terminal a) and (próximo símbolo de entrada for = a)
then (casar)
retira da pilha;
avança entrada;
else if (topo da pilha for um não-terminal A)
and (próximo símbolo de entrada for terminal a)
and (célula da tabela M[A,a] conter a produção AX1X2...Xn)
then(gera)
retira da pilha;
for i:= n downto1 do
coloca Xi na pilha;
else erro;
if (topo da pilha for = $) and (marca SEGUINTE na entrada for = $)
then aceita;
else erro;

27)
28) Sabe-se que ocorre um erro quando o símbolo corrente da entrada não corresponde
ao terminal contido no topo da pilha ou o símbolo corrente da entrada não possui
produção correspondente a partir do não terminal contigo no topo da pilha. Tais erros
podem ser recuperados através da modalidade do desespero
29) Top-down : da raiz para as folhas // Bottom-up : das folhas para a raiz
30) Parte-se dos símbolos terminais em direção ao símbolo inicial da gramatica e o
processo de derivação é mais a direita

31)

32) Pilha onde os símbolos a serem reduzidos são empilhados e tabela sintática que guia o
processo de empilhamento e redução
33)

34) Handle é onde a produção cujo lado direito está na pilha; as operações durante a
analise são a empilhação, onde coloca-se no topo da pilha o primeiro símbolo da
cadeia de entrada; redução, onde substitui-se o lado direito do handle pelo seu lado
esquerdo; aceitação, onde a cadeia de entrada é reconhecida e por fim o erro, onde a
cadeia de entrada não é reconhecida.
35) Precedencia de operadores procura pela existência dos símbolos terminais em uma
tabela sintática.
36) < significa que tem precedência menor; = significa que tem a mesma precedência e >
significa que tem precedência maior
37) É uma matriz quadrada que relaciona todos os terminais da gramatica e o símbolo
delimitador utilizando $ ou λ ou Ɛ
38)
39) Seja a o terminal mais ao topo da pilha e b o primeiro terminal da cadeia sendo
analisada
1. Se a<b ou a=b, então empilha b
2. Se a>b, então procura o lado direito do handle na pilha e substitui pelo seu
lado esquerdo
40)
41) SLR; LR canônico e Look ahead LR
42) Left to right, rightmost derivation, with k lookahead symbols
43)

44) empilha-se o estado inicial s0;


concatena-se o símbolo delimitador $ no final da cadeia de entrada
fazer ip apontar para o primeiro símbolo da cadeia
repetir
seja sn o estado no topo da pilha e a o símbolo símbolo apontado apontado por ip
se (ação[sn,a]=“empilhar sn+1”) então
empilhar a;
empilhar sn+1;
avançar ip;
senão se (ação[sn,a]=“reduzir A -> β”) então
desempilhar 2*|β| elementos;
empilhar A;
empilhar o estado indicado por transição[sn-2*|β|,A];
senão se (ação[sn,a]=“aceitar”) então SUCESSO
senão ERRO;
fim-repetir;
45)
46)

Você também pode gostar