Buscar

AV - 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 5 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

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

Disciplina: COMPILADORES  AV
Aluno: YURI CID DA SILVA LIMA 202008191076
Professor: MAIARA HEIL CANCIAN
 
Turma: 9004
CCT0838_AV_202008191076 (AG)   21/03/2023 18:59:27 (F) 
Avaliação: 8,00 pts Nota SIA: 10,00 pts
 
ENSINEME: ANÁLISE LÉXICA  
 
 1. Ref.: 7807511 Pontos: 1,00  / 1,00
 (IBADE/2021) Programas escritos em algumas linguagens são executados à partir do código fonte, mas existem
programas que necessitam ser previamente traduzidos para linguagem de máquina antes de ser executados.
Chamamos esta "tradução" de:
Edição.
Linkedição.
Tradução.
 Compilação.
Interpretação.
 2. Ref.: 3990674 Pontos: 1,00  / 1,00
Autômato Finito é formalmente de�nido por uma quíntupla como por exemplo esta: 
Q = número de estados = {S0, S1, S2, S3,S4,S5} 
 = símbolos de entrada = {A,E,M,O,S} 
 = transições =  
 (S0,S) = S1 
 (S1,E) = S2 
 (S1,O) = S3 
 (S3,M)= S4 
 (S4,A) = S5 
q0 = estado inicial = {S0} 
F = conjunto de estados �nais = {S3,S5} 
Sabendo-se que os estados �nais quando atingidos caracterizam que a palavra foi aceita, que palavras
seriam aceitas por este autômato? 
 "Se" e "Soma"
"So" e "Sema"  
"Mesa" e "So" 
"Som" e "Sema"   
"Mesa" e "Ema"  
Σ
δ
δ
δ
δ
δ
δ
javascript:alert('C%C3%B3digo da quest%C3%A3o: 7807511.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990674.');
 
ENSINEME: ANÁLISE SEMÂNTICA  
 
 3. Ref.: 3992180 Pontos: 1,00  / 1,00
Tabela de símbolos implementadas como tabelas hash implicam no uso de uma fórmula, denominada fórmula
de hash que a partir de algum tipo de cálculo de�ne o índice do slot onde o símbolo será armazenado. 
Fórmulas de hashing bem selecionadas produzem um espalhamento dos símbolos por diferentes slots, com base
nisso podemos a�rmar que apesar de não existirem fórmulas perfeitas se eventualmente dois símbolos gerarem o
mesmo índice não ocorrerá uma colisão porque métodos como Endereçamento Aberto e Hashing Aberto fazem com
que os símbolos sejam armazenados em locais diferentes.  
Com base nas a�rmativas acima podemos concluir que:
As duas são corretas e a segunda justi�ca a primeira
As duas a�rmativas são falsas
A primeira é verdadeira e a segunda falsa
As duas são corretas e a segunda não justi�ca a primeira
 A primeira é falsa e a segunda correta
 4. Ref.: 3992186 Pontos: 1,00  / 1,00
Veri�cação de tipos é uma atividade extremamente importante na análise semântica já que determinados erros
somente são percebidos nesta atividade, pois passam despercebidos nas Análises Léxicas e Sintáticas. 
Considere o seguinte trecho de programa :
inteiro a,b,c; 
{ 
.... 
c:= a + b;  
.... 
} 
 
Quanto a expressão c:= a + b; podemos a�rmar que:
 
O seu tipo será inteiro 
porque 
todos os operandos são do tipo inteiro 
 
Com base nas a�rmativas podemos concluir que:
A primeira é falsa e a segunda correta
As duas são corretas e a segunda não justi�ca a primeira
 As duas são corretas e a segunda justi�ca a primeira
A primeira é verdadeira e a segunda falsa
As duas a�rmativas são falsas
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992180.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992186.');
 
ENSINEME: ANÁLISE SINTÁTICA  
 
 5. Ref.: 3992525 Pontos: 1,00  / 1,00
Enade 2008
Compiladores de linguagens de programação traduzem programas-fonte, em uma linguagem de entrada, para
programas-objeto, em uma linguagem de saída. Durante o processo de tradução, o compilador deve veri�car se as
sentenças do programa-fonte estão sintaticamente corretas.
Esse processo de análise sintática pode ser realizado construindo-se uma árvore de análise segundo duas principais
abordagens: top-down, quando a árvore é investigada da raiz às folhas; ou bottom-up, das folhas à raiz.
Acerca desse assunto, julgue os itens seguintes.
I A análise top-down é adequada quando a linguagem de entrada é de�nida por uma gramática recursiva à esquerda.
II Independentemente da abordagem adotada, top-down ou bottom-up, o analisador sintático utiliza informações
resultantes da análise léxica.
III Se os programas em uma linguagem podem ser analisados tanto em abordagem top-down como em bottom-up, a
gramática dessa linguagem é ambígua.
IV A análise bottom-up utiliza ações comumente conhecidas como deslocamentos e reduções sobre as sentenças do
programa-fonte.
Estão certos apenas os itens
I e II
II, III e IV
I, III e IV
 II e IV
I e III
 6. Ref.: 3992520 Pontos: 1,00  / 1,00
Considere a seguinte gramática:
E → +EE
E → *EE
E → a
E → b
Podemos a�rmar que ela somente pode ser analisada por um Parser Descendente Preditivo
Porque
Ela está fatorada e sem recursão à Esquerda
Como base nas a�rmativas acima podemos concluir que:
A primeira é verdadeira e a segunda falsa
As duas a�rmativas são falsas
As duas são corretas e a segunda não justi�ca a primeira
As duas são corretas e a segunda justi�ca a primeira
 A primeira é falsa e a segunda correta
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992525.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992520.');
 
ENSINEME: GERAÇÃO DE CÓDIGO  
 
 7. Ref.: 3993121 Pontos: 0,00  / 1,00
O produto �nal da etapa de síntese do compilador é o código de montagem que será submetido ao montador para
gerar o módulo objeto.
Em seu trabalho o montador deve, entre outras coisas, determinar os endereços em memória das instruções , dos
rótulos e das variáveis.
Considere o trecho de código abaixo:
Sabendo-se que VALOR e RESULTADO tiveram seus endereços determinados nesta ordem, na tabela de símbolos
seus endereços seriam respectivamente
 $3000 e $3001
 $1001 e $1000
$1000 e $1001
$3001 e $3000
$1000 e $3000
 8. Ref.: 3993004 Pontos: 0,00  / 1,00
A alocação adequada de memória para a execução do programa é fundamental para que ele tenha um bom
desempenho.
A memória utilizada pelo programa é dividida em várias parte sendo cada uma delas mais adequada para um
determinado uso.
As áreas em que um programa é normalmente divido são
I Área de Código Objeto
II Área de Dados Estática
III Heap
IV Pilha
Dentre estas a alocação estática é utilizada nas áreas:
III e IV
 I e III
II e IV
II e III
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3993121.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3993004.');
 I e II
 
ENSINEME: O COMPILADOR  
 
 9. Ref.: 3990551 Pontos: 1,00  / 1,00
Atualmente o JAVA passou a utilizar uma segunda fase de compilação para acelerar a execução. Está técnica
é denominada: 
 JIT
JVM
Linkedição
Bytecode
Montagem
 10. Ref.: 3990550 Pontos: 1,00  / 1,00
O componente do processo de tradução que a partir dos programas objetos gera o módulo de carga é o:  
Interpretador 
 Ligador 
Carregador 
Montador 
Compilador 
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990551.');
javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990550.');

Continue navegando