SóProvas


ID
32761
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2008
Provas
Disciplina
Arquitetura de Computadores
Assuntos

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

Alternativas
Comentários
  • O processo de compilação é composto das seguintes fases:
    - Análise lexica;
    - Análise sintática;
    - Análise semântica;
    - Geração de código intermediário;
    - Otimisação de código;
    - Geração de código final.

    A ligação dos módulos, ou linker, é uma parte separada do compilador, cuja função é unir vários programas já compilados de uma forma independente e unificá-los em um programa executável. A questão tenta confundir justamente pelo fato de muitos acharem que o linker é parte integrante da compilação.
  • ilustrando o comentário acima com um compilador c/c++ genérico:
  • Otimização de código também não é obrigatória, pois, como o próprio nome já diz, é apenas uma otimização

  • Compiladores - Fases


    • Análise (divide o programa fonte nas partes 
    constituintes e cria uma representação 
    intermediária dos mesmos)
    – Léxica (tokens)
    – Sintática (árvore sintática)
    – Semântica (incoerências semânticas)


    • Síntese (constrói o programa alvo desejado a 
    partir da representação intermediária)
    – Geração de código intermediário
    – Otimização do código
    – Geração do código

  • Alternativa D é a correta.....