Uma linguagem de programação é aquela criada para instruir u...

Próximas questões
Com base no mesmo assunto
Q874233 Arquitetura de Software
Uma linguagem de programação é aquela criada para instruir um computador a realizar suas tarefas. Sobre o processo de transformação do código-fonte em linguagem de máquina, é correto afirmar que
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A resposta correta é a alternativa E.

A questão aborda o processo de transformação do código-fonte em linguagem de máquina, um tema fundamental no estudo de Sistemas Operacionais e Arquitetura de Software. Entender como o código é processado e executado é crucial para compreender o funcionamento de programas e sistemas computacionais.

Vamos analisar cada alternativa:

Alternativa A: Esta afirmação está incorreta. Uma linguagem de baixo nível, como Assembly, requer mais instruções para realizar tarefas, já que está mais próxima da linguagem de máquina e menos abstrata que linguagens de alto nível, como Python ou Java. Estas últimas permitem que o programador escreva menos código para realizar as mesmas tarefas, devido a seu nível de abstração maior.

Alternativa B: Esta opção também está incorreta. Um montador traduz programas escritos em linguagem de montagem (Assembly) para linguagem de máquina, não para uma linguagem de alto nível. A direção do processo está inversa ao descrito na alternativa.

Alternativa C: A função descrita é típica de um analisador sintático, e não apenas de um analisador semântico. O analisador semântico cuida da lógica e semântica do código, garantindo que as expressões sejam coerentes e que não haja erros semânticos, mas não é responsável pela criação das estruturas dos comandos, que é uma tarefa do analisador sintático.

Alternativa D: Esta afirmação não está correta. A análise léxica é responsável por dividir o código em tokens, ou seja, em unidades básicas como palavras-chave, identificadores e operadores. A coerência de tipos de dados é verificada mais adiante, durante a análise semântica.

Alternativa E: Esta é a alternativa correta. O método de interpretação realmente processa o código-fonte comando a comando. Cada instrução é lida, convertida em código executável e imediatamente executada, antes que o próximo comando seja processado. Isso é típico de interpretadores, diferentemente de compiladores, que traduzem todo o código-fonte de uma vez para depois executá-lo.

Espero que esta explicação tenha clarificado o tema e as alternativas. Desejo bons estudos e sucesso na sua preparação para concursos!

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

-Montador ou assembler(não confundir com Assembly): É um programa que cria o código objeto traduzindo as instruções da linguagem de montagem(Assembly) para codigo de máquina.

-Análise Lexica: Processo de analisar a entrada de linhas e caracteres (tal como o codigo fonte de um programa de um computador) e produzir uma sequencia de simbolos chamados de simbolos léxicos ou tokens.

-Linguagem de baixo nível: Segue as características da arquitetura do computador. Utiliza somente instruções que serão executadas pelo processador, diretamente relacionadas com a arquitetura do computador(linguagem de máquina).

Análise semântica: É a terceira fase da compilação onde se verificam os erros semânticos no codigo fonte e coletam-se as informações necessárias para a próxima fase de compilação que é a geraçao do código objeto.

Etapas:

-Análise de contexto e Geração de Código

-Verificação de errros que estão sintaticamente corretos.

 

SELVA!  

O analisador semântico verifica o significado da estrutura dos comandos e não na criação destas, sendo que a função de criação das estruturas (formando tokens) é de responsabilidade da análise léxica.

E - no método de interpretação, as fases de compilação, ligação e execução do programa-fonte são realizadas comando a comando. Ou seja, cada comando é lido, é convertido em código executável e imediatamente executado, antes que o comando seguinte seja lido.

Interpretadores

-Processo de execução do código fonte é feita, instrução por instrução, sem a geração de um programa equivalente em linguagem de máquina.

- Cada comando em alto nível é examinado, convertido para código binário e executado imediatamente.

- Converte cada instrução do código-fonte em código-binário;

Vantagem: mais fácil de depurar;

Desvantagens: é necessário fornecer o código-fonte, execução lenta.

Compilador

-Traduz programas escritos em uma linguagem de programação de alto nível em código de máquina.

- O código-objeto não pode ser executado diretamente no SO.

- O compilador precisa ser adequado à LP e também à arquitetura de hardware onde o programa será executado.

- Toma todo o código fonte e o converte em código de máquina gerando o código-objeto;

Vantagem: execução rápida

Desvantagem: dificuldade para depuração

Montadores (assembler)

-Processo que converte um programa escrito em Assembly para outro, idêntico em termos de resultado, escrito na linguagem da máquina.

- A equivalência é de uma instrução de máquina para uma instrução binária.

Alternativa: E

a) uma linguagem de baixo nível permite que o programador especifique a realização de ações do computador com muito menos (mais) instruções.

b) montador é um programa que traduz outro programa em linguagem de montagem para seu equivalente em linguagem de alto nível (de máquina).

c) a função do analisador semântico (sintático) de um compilador consiste basicamente na criação das estruturas de cada comando, na verificação da correção dessas estruturas e na alimentação da tabela de símbolos com as informações geradas.

d) a análise léxica (semântica) obriga o tipo de dado de uma expressão a ser coerente com o que foi declarado.

e) no método de interpretação, as fases de compilação, ligação e execução do programa-fonte são realizadas comando a comando. Ou seja, cada comando é lido, é convertido em código executável e imediatamente executado, antes que o comando seguinte seja lido.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo