Assinale a alternativa correta a respeito de compiladores e interpretadores, considerando o processo de conversão (tradução) de comandos em linguagem de alto nível para linguagem de máquina (código binário) e o processo de execução de programas.

A respeito de compiladores, ligadores, linguagem de máquina
(assembly) e conceitos associados, julgue próximos itens.

O compilador, em contraste com o montador, opera sobre uma linguagem de alto nível, enquanto o montador opera sobre uma linguagem de montagem.

Dada as seguintes proposições sobre a fase de otimização de código de um compilador:
I. Pode-se afirmar que Bloco básico, ou “trecho de código em linha reta” significa blocos trechos de programa cujas instruções são sempre executadas em ordem (em linha reta), da primeira até a última;
II. A otimização é realizada exclusivamente após a geração do código objeto;
III. A otimização é dita dependente da máquina quando aplicadas antes da geração do código assembly;
IV. A otimização independente de máquina é conhecida como a análise de fluxo, que por sua vez contempla a análise de fluxo de controle e a análise de fluxo de dados.
Marque a opção que corresponde somente às afirmativas verdadeiras.

Ao realizar testes durante a elaboração de um compilador, um analista descobriu que havia, no compilador, um erro na checagem de tipos de variáveis em expressões, permitindo, por exemplo, a multiplicação entre tipos de dados que não poderia ocorrer. Em compiladores, a checagem de tipos de variáveis em expressões é uma função do



Julgue os itens a seguir, a respeito de fundamentos de computação.

Em programa escrito em linguagem de alto nível e traduzido por compilador, alguns comandos que fazem parte desse código são instruções da linguagem de programação, enquanto outros comandos são instruções típicas do compilador denominadas diretivas.

O interpretador

A figura abaixo mostra as cinco fases para execução de programa Java.

Imagem 020.jpg

O processo de execução ocorre da seguinte forma:

- Na edição, o programa é criado no editor e armazenado em disco.
- Na compilação, o compilador gera um PRODUTO e o armazena em disco.
- Na carga, o carregador de classe coloca o PRODUTO na memória.
- Na verificação, o verificador que o PRODUTO é válido e não viola as restrições de segurança do Java.
- Na interpretação, o interpretador lê o PRODUTO e faz a tradução para uma linguagem que o computador pode entender, possivelmente armazenando valores de dados enquanto executa o programa.

Nesse processo, PRODUTO representa o seguinte componente:

Nas questões de n. 2 a 9, assinale a opção correta.

Um analista está responsável pelo projeto de um compilador para uma nova linguagem que sua empresa está desenvolvendo. Este compilador deverá receber como entrada o código fonte do programa e gerar como saída o código de linguagem de máquina para um determinado processador e sistema operacional. O analista sabe que um processo de compilação é dividido em fases e que seu compilador deverá possuir todas as fases de um típico processo de compilação mesmo que elas NÃO sejam obrigatórias em outros compiladores. A fase que não faz parte de um processo de compilação e que, portanto, não seria necessária no projeto do analista é a

Acerca dos conceitos de informática, julgue os seguintes itens.

Na programação empregando uma linguagem de alto nível, a utilização de um compilador implica o uso de um ligador e de um carregador para a correta execução do programa; por outro lado, a utilização de um interpretador, que simula a existência de um processador cujas instruções são aquelas da linguagem de alto nível empregada, torna desnecessárias as etapas de ligação e carga.

No contexto do módulo executável de um programa de computador, menor tempo de execução, menor consumo de memória, maior tempo na execução de loop’s, e menor dificuldade de identificação de erros estão associados, respectivamente, aos métodos