Buscar

Compiladores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

01/06/2020 Estácio: Alunos
simulado.estacio.br 1/4
 
 
 
Disc.: COMPILADORES 
Aluno(a): EDUARDO HENRIQUE NARCISO DOS SANTOS Matríc.: 201602842388
Acertos: 0,3 de 0,5 07/05/2020 (Finaliz.)
 
 
Acerto: 0,0 / 0,1
 
Árvores sintáticas servem para:
 Normalmente são criadas pelo analisador sintático.
 Comunicação entre o Analisador léxico e o gerador de código intermediário
 Normalmente são criadas pelo analisador léxico.
 Podem ser usadas como estruturas intermediárias entre o analisador sintático e o analisador semântico
 comunicação entre o Analisador sintático e o Analisador léxico
Respondido em 07/05/2020 20:38:27
 
 
Compare com a sua resposta:
 
Acerto: 0,0 / 0,1
 
Construa um programa Lex que conte o número de
ocorrências da palavra she e he num determinado texto
de entrada.
 
 %{
 int s,h;
 %}
 %%
 she {s++; REJECT;}
 he {h++; REJECT;}
 . ;
 %%
 main() {
 yylex();
 printf("Senhoras:%d",s);
 printf("Senhores:%d",h);}
 }
%%
 
 Questão1
 Questão2
http://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
01/06/2020 Estácio: Alunos
simulado.estacio.br 2/4
int s,h;
 she {s++; REJECT;}
 he {h++;}
 . ;
 %%
 main() {yylex();
 printf("Senhoras:%d",s);
 printf("Senhores:%d",h);}
 yywrap() {return(1);}
 
 %{
 int s,h;
 %}
 %%
 she {s++; REJECT;}
 he {h++;}
 . ;
 %%
 main() {yylex();
 printf("Senhoras:%d",s);
 printf("Senhores:%d",h);}
 yywrap() {return(1);}
 
%{
 int s,h;
 printf("Senhoras:%d",s);
 printf("Senhores:%d",h);
 %}
 %%
 she {s++; REJECT;}
 he {h++;}
 %%
 main() {yylex();}
 yywrap() {return(1);}
%%
 she|he {s++;h++ REJECT;}
 %%
int s,h;
 main() {yylex();
 printf("Senhoras:%d",s);
 printf("Senhores:%d",h);}
 yywrap() {return(1);}
Respondido em 07/05/2020 20:37:53
 
 
Compare com a sua resposta:
 
Acerto: 0,1 / 0,1
 
A identificação e o tratamento de erros em programas de computador estão entre
 as tarefas dos compiladores. Os erros de um programa podem ter variados tipos e
 precisam ser identificados e tratados em diferentes fases da compilação.
 Considere uma linguagem de programação que exige que as variáveis
 manipuladas por seus programas sejam previamente declaradas, não podendo
 haver duplicidade de identificadores para variáveis em um mesmo escopo.
 Considere, ainda, que a sintaxe dessa linguagem tenha sido definida por meio de
 
 Questão3
01/06/2020 Estácio: Alunos
simulado.estacio.br 3/4
uma gramática livre de contexto e as produções seguintes definam a forma das
 declarações de variáveis em seus programas.
D → TL; | TL; D
 T → int | real | char
 L → id | id,L
 Considere os exemplos de sentenças ¿ I e II ¿ a seguir, com a indicação ¿
 entre os delimitadores /* e */ ¿ de diferentes tipos de erros.
I int: a, b; /* dois pontos após a palavra int */
 II int a,b; real a; /* declaração dupla da variável a */
A partir dessas informações, assinale a opção correta.
O compilador não tem meios para identificar e relatar erros como o da sentença I.
A identificação e a comunicação do erro na sentença II são funções do analisador léxico.
A identificação e a comunicação do erro na sentença I são funções da geração de código intermediário.
A identificação e a comunicação do erro em qualquer uma das sentenças são funções do analisador léxico.
 A identificação e a comunicação do erro na sentença II são funções da análise semântica.
Respondido em 07/05/2020 19:48:09
 
 
Compare com a sua resposta:
 
Acerto: 0,1 / 0,1
 
A expressão [A-Za-z]+:
 Define ma seqüência de zero ou mais repetições da seqüência de caracteres ¿A-Za-z¿
 Define uma seqüência de zero ou mais letras maiúsculas ou minúsculas
 Define uma seqüência de um ou mais letras maiúsculas ou minúsculas
 É equivalente à expressão [A-Za-z][A-Za-z]*
 É uma expressão regular
Respondido em 07/05/2020 19:42:35
 
 
Compare com a sua resposta:
 
Acerto: 0,1 / 0,1
 
Na gram atica a seguir os não-terminais estão em mai usculas e os terminais
em minusculas, todos separados por espacos (estilo BNF):
PROGRAMA -> begin LISTACMD end
 LISTACMD -> LISTACMD CMD
 | CMD
 CMD -> do id := num to num begin LISTACMD end
 | read id
 | write EXP
 | id := EXP
 EXP -> EXP + EXP | EXP - EXP | num | id | ( EXP )
 
Qual a principal razão para essa gramática não ser LL(1)?
Somente a recursão à esquerda
Somente a recursão a direita
Recursão a direita preditiva
 Recursão à esquerda ou ambiguidade.
Ambiguidade
Respondido em 07/05/2020 19:43:42
 Questão4
 Questão5
01/06/2020 Estácio: Alunos
simulado.estacio.br 4/4
 
 
Compare com a sua resposta:
 
 
 
 
 
 
 
 
 
javascript:abre_colabore('34442','188002871','3749005168');

Continue navegando