Buscar

COMPILADORES AV

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

ENSINEME: ANÁLISE LÉXICA 
 
 
 1. Ref.: 7807544 
 
Expressões regulares são utilizadas para especificar padrões. Qual das seguintes 
alternativas descreve um exemplo de uso de uma expressão regular? 
 
 
para gerar uma lista de nomes aleatórios. 
 para validar um endereço de e-mail. 
 
para definir a cor de uma página web. 
 
para criar uma lista ordenada. 
 
para calcular o fatorial de um número. 
 
 
 
 
ENSINEME: ANÁLISE SEMÂNTICA 
 
 
 2. Ref.: 7808675 
 
(FCC/2019) Um compilador está verificando se uma variável foi declarada somente uma 
vez, se foi declarada antes do seu primeiro uso, se foi declarada e nunca foi usada e se 
os tipos de dados em uma expressão aritmética são compatíveis. Essas verificações 
são realizadas na fase de: 
 
 
análise sintática. 
 
geração do código. 
 análise semântica. 
 
otimização do código. 
 
análise léxica. 
 
 
 3. Ref.: 7808676 
 
(ABIN/2018 - Adaptada) Com relação a linguagens de programação e compiladores, 
avalie as assertivas a seguir: 
I. A análise semântica, por ser a primeira etapa do processo de compilação, não verifica 
a sintaxe do código-fonte. 
II. A análise semântica é responsável apenas por identificar erros de lógica no código-
fonte. A falta de indentação em um código é verificada nessa etapa. 
III. A etapa de análise semântica de um compilador tem como objetivo verificar os inter-
relacionamentos de um programa, validando tipologias, fluxos de controle e unicidade 
na declaração de variáveis. 
Marque a alternativa correta. 
 
 III, apenas. 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207807544.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207808675.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207808676.');
 
II, apenas. 
 
I e II, apenas. 
 
I, apenas. 
 
I, II e III. 
 
 
 
 
ENSINEME: ANÁLISE SINTÁTICA 
 
 
 4. Ref.: 7807516 
 
(IBADE/2018) Algumas linguagens exigem que o código fonte seja previamente 
traduzido para linguagem de máquina antes de ser executado. Chama-se esta fase de: 
 
 
Linkedição. 
 
Tradução. 
 
Edição. 
 
Interpretação. 
 Compilação. 
 
 
 5. Ref.: 7807517 
 
(FCC/2016) A compilação é o processo de tradução de um programa escrito em uma 
linguagem fonte em um programa equivalente em linguagem de máquina. Nesse 
processo, o programa fonte normalmente passa pelas fases: 
I. Identificação de sequências de caracteres de entrada e produção de uma sequência 
de elementos de saída, os tokens. Nesta fase, verifica-se se cada caractere do 
programa fonte pertence ao alfabeto da linguagem, identificando os tokens e 
desprezando comentários e espaços em branco. Os tokens constituem classes de 
símbolos, tais como palavras reservadas, delimitadores, identificadores etc. 
II. Identificação de sequências de símbolos que constituem estruturas como expressões 
e comandos, através de uma varredura, ou parsing, da representação interna do 
programa fonte, produzindo uma estrutura em árvore, chamada árvore de derivação. 
III. Verificação das estruturas quanto ao sentido, ou seja, se o programa não possui 
erros de significado. Por exemplo, verifica se um identificador declarado como variável é 
utilizado como tal, se existe compatibilidade entre operandos e operadores em 
expressões etc. 
Os itens I, II e III referem-se, correta e respectivamente, às fases: 
 
 Análise Léxica - Análise Sintática - Análise Semântica. 
 
Classificação - Análise Léxica - Montagem. 
 
Identificação Inicial - Análise Estrutural - Geração de Código. 
 
Interpretação - Análise Sintática - Montagem. 
 
Busca Binária - Montagem Léxica - Análise Semântica. 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207807516.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207807517.');
 
 
 
 
ENSINEME: GERAÇÃO DE CÓDIGO 
 
 
 6. Ref.: 7815534 
 
(Exército/2011) No espaço de memória de um sistema computacional, qual área é 
reservada pelo sistema operacional para a alocação dinâmica de memória? 
 
 
Stack. 
 
Cache. 
 
Pilha. 
 
DMA. 
 Heap. 
 
 
 7. Ref.: 3993114 
 
A montagem e a ligação são as últimas etapas na criação de um programa executável. 
A partir deste instante o programa fica disponível para ser executado e quando o 
usuário solicitar que ele rode o Carregador irá alocá-lo na memória. 
Várias técnicas foram desenvolvidas para realizar tanto a ligação como o carregamento. 
Dentro deste contexto analise as afirmativas abaixo: 
 
I Na montagem e carregamento combinados não é criado o módulo objeto 
II Carregamento e Ligação Dinâmicos sempre ocorrem em tempo de execução 
III Carregador de ligação direta usam relocação de código 
 
É verdadeiro o que se afirma em: 
 
 
I e II 
 
I, II e III 
 I e III 
 
Somente II 
 
Somente I 
 
 
 8. Ref.: 3993004 
 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%207815534.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203993114.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203993004.');
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: 
 
 
II e IV 
 
III e IV 
 
II e III 
 
I e III 
 I e II 
 
 
 
 
ENSINEME: O COMPILADOR 
 
 
 9. Ref.: 3990550 
 
O componente do processo de tradução que a partir dos programas objetos gera o 
módulo de carga é o: 
 
 
Compilador 
 Ligador 
 
Carregador 
 
Montador 
 
Interpretador 
 
 
 10. Ref.: 3990553 
 
Os compiladores, de um modo geral, são compostos de funções padronizadas, as 
quais compreendem a análise do programa fonte e então a síntese para a 
derivação do código objeto. 
O processo de compilação é comumente estruturado em passos que, eles são: 
 
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203990550.');
javascript:alert('C%C3%B3digo%20da%20quest%C3%A3o:%203990553.');
 
análise léxica, análise sintática, análise semântica, síntese do programa fonte 
e reutilização de tokens. 
 
simplificação do programa fonte, aplicação de algoritmo de escalonamento, 
análise contextual, geração e otimização de código. 
 análise léxica, análise sintática, análise semântica, geração de código 
intermediário, otimização de código e geração de código. 
 
reconhecimento dos tokens iniciais e finais, análise contextual, aplicação de 
algoritmo de escalonamento, geração de código intermediário e geração de 
código objeto. 
 
análise da gramática, busca binária, geração de código intermediário, 
geração de objeto final.

Mais conteúdos dessa disciplina