Questões de Compilador (Arquitetura de Computadores)

Limpar Busca

Julgue o item subsequente, no que concerne a montadores, compiladores, ligadores e interpretadores.


Compilador é um software para criar aplicações que combinam ferramentas comuns de desenvolvimento em uma única interface gráfica de usuário. Esse programa ajuda os desenvolvedores na criação de novas aplicações de forma rápida, já que os vários utilitários não precisam ser ajustados e integrados manualmente durante a configuração.

  • Certo
  • Errado

Várias são as linguagens de programação utilizadas no desenvolvimento de aplicações. No entanto, uma linguagem de programação deverá possuir um “tradutor” do código-fonte (instruções do programa) para a linguagem de máquina. Este tradutor pode ser um interpretador ou um compilador, dependendo da linguagem de programação. Acerca do compilador, assinale a alternativa correta

  • A A execução de um programa compilado é mais lenta do que um programa interpretado.
  • B Os compiladores apresentam uma depuração mais simples do que os interpretadores.
  • C Os compiladores apresentam uma depuração de cada linha mais demorado.
  • D A estrutura de dados utilizada pelos compiladores é mais simples e limitada.
  • E Menor consumo de memória para a execução, uma vez que o programa final é menor.
Programas de computadores diretamente relacionados com serviços complementares do sistema operacional podem ser chamados de programas utilitários. Considerando os programas utilitários do sistema operacional, assinale a afirmativa INCORRETA. 
  • A O debugger (depurador) é o utilitário que permite ao usuário acompanhar toda a execução de um programa, a fim de detectar erros na sua lógica de programação.
  • B O interpretador, durante a execução de um programa escrito em linguagem de alto nível, traduz cada instrução e a executa imediatamente. Ele é considerado um tradutor que não gera módulo-objeto.
  • C O loader (carregador) é o utilitário responsável por carregar na memória principal um programa para ser executado. O procedimento de carga varia com o código gerado pelo linker e, em função deste, o loader é classificado como do tipo absoluto ou relocável.
  • D O linker (editor de ligação) é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável. Suas funções básicas são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa.
  • E Existem dois tipos distintos de tradutores que geram módulos-objeto: montador e compilador. O montador é o utilitário responsável por gerar, a partir de um programa escrito em uma linguagem de alto nível, um programa em linguagem de máquina não executável. O compilador é o utilitário responsável por traduzir um programa em linguagem de montagem em um programa-objeto não executável (módulo-objeto).

De acordo com Menezes (2005, p.85), uma gramática utilizada em um compilador é, basicamente, um conjunto finito de regras, as quais, quando aplicada sucessivamente, geram palavras. O conjunto de todas as palavras geradas por uma gramática define a linguagem. A figura a seguir ilustra uma estrutura hierarquizada para os diferentes tipos de gramática de Chomsky:
Imagem relacionada à questão do Questões Estratégicas
Com base na hierarquia de Chomsky ilustrada pela figura acima, analise as afirmativas:

I-A Hierarquia de Chomsky é a classificação de gramáticas formais descrita em 1959 pelo linguista Noam Chomsky. Esta classificação possui 4 níveis (descritos na figura ao acima), sendo que os dois últimos níveis (os níveis 2 e 3) são amplamente utilizados na descrição de linguagem de programação e na implementação de interpretadores e compiladores. Mais especificamente, o nível 2 é utilizado em análise sintática (computação) e o nível 3 em análise léxica.
II-A proposta de Hierarquização de Chomsky agregou à ciência da computação um importante estudo sobre as linguagens ao mostrar que a partir de um conjunto ilimitado de regras poderíamos criar um conjunto ilimitado de frases, ou seja, uma linguagem.
III-A classificação das gramáticas começa pelo tipo 0, com maior nível de liberdade em suas regras, e aumentam as restrições até o tipo 3.

A partir do contexto apresentado, é CORRETO apenas o que se afirma em: 

  • A III.
  • B I.
  • C II.
  • D I e II.
  • E II e III.

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:

  • A Interpretação.
  • B Compilação.
  • C Linkedição.
  • D Edição.
  • E Tradução.