Prévia do material em texto
Compilador O que e um compilador? a) Um software que traduz codigo de maquina para codigo de alto nivel. b) Um software que traduz codigo de alto nivel para codigo de maquina. c) Um tipo de banco de dados utilizado para armazenar codigo de programas. d) Um programa que gera relatorios sobre o uso de memoria de um sistema. Resposta correta: b) Um software que traduz codigo de alto nivel para codigo de maquina. Explicacao: O compilador e responsavel por transformar o codigo fonte, escrito em uma linguagem de programacao de alto nivel, em codigo de maquina que pode ser executado pelo processador. Qual e a principal diferenca entre um compilador e um interpretador? a) O compilador traduz o codigo linha por linha, enquanto o interpretador traduz o codigo inteiro de uma vez. b) O compilador traduz o codigo de uma vez para codigo de maquina, enquanto o interpretador traduz o codigo linha por linha. c) O compilador so funciona com linguagens de alto nivel, enquanto o interpretador e usado para todas as linguagens. d) Nao ha diferenca, ambos realizam a mesma funcao. Resposta correta: b) O compilador traduz o codigo de uma vez para codigo de maquina, enquanto o interpretador traduz o codigo linha por linha. Explicacao: O compilador faz a traducao completa do codigo antes da execucao, criando um arquivo executavel. Ja o interpretador traduz o codigo enquanto ele esta sendo executado, sem criar um arquivo intermediario. Qual das etapas do processo de compilacao corresponde a analise do codigo fonte para detectar erros de sintaxe? a) Geracao de codigo. b) Analise lexica. c) Analise sintatica. d) Otimizacao de codigo. Resposta correta: c) Analise sintatica. Explicacao: A analise sintatica verifica se o codigo segue as regras gramaticais da linguagem de programacao, identificando erros como a falta de parenteses ou chaves. O que e a tabela de simbolos em um compilador? a) Uma lista das variaveis e funcoes que estao sendo executadas no momento. b) Uma tabela usada para armazenar o codigo executavel do programa. c) Uma estrutura de dados que armazena informacoes sobre variaveis, funcoes e outros identificadores usados no codigo. d) Um conjunto de simbolos graficos que representam os comandos do codigo. Resposta correta: c) Uma estrutura de dados que armazena informacoes sobre variaveis, funcoes e outros identificadores usados no codigo. Explicacao: A tabela de simbolos mantem informacoes como o tipo de dados, escopo e localizacao das variaveis e funcoes que aparecem no codigo-fonte. O que e o "codigo intermediario" gerado por um compilador? a) O codigo de maquina final que e executado diretamente pelo processador. b) Uma versao do codigo que e otimizada, mas ainda precisa ser traduzida para codigo de maquina. c) O codigo de alto nivel que sera interpretado por um interpretador. d) Uma versao de backup do codigo fonte original. Resposta correta: b) Uma versao do codigo que e otimizada, mas ainda precisa ser traduzida para codigo de maquina. Explicacao: O codigo intermediario e uma representacao abstrata que pode ser mais facil de otimizar e ajustar antes de ser convertido em codigo de maquina final. Durante a etapa de "analise lexica", o compilador: a) Verifica a sintaxe do programa. b) Divide o codigo em tokens, que sao unidades significativas de codigo, como palavras-chave e operadores. c) Executa o codigo para verificar se ha erros em tempo de execucao. d) Gera o codigo de maquina correspondente. Resposta correta: b) Divide o codigo em tokens, que sao unidades significativas de codigo, como palavras-chave e operadores. Explicacao: A analise lexica e responsavel por dividir o codigo em partes menores chamadas tokens, facilitando a interpretacao do codigo nas etapas subsequentes. Qual das alternativas abaixo descreve corretamente o papel da otimizacao no processo de compilacao? a) A otimizacao tenta melhorar a legibilidade do codigo. b) A otimizacao transforma o codigo fonte para uma linguagem mais eficiente, sem alterar seu comportamento. c) A otimizacao remove todas as variaveis e funcoes nao utilizadas no codigo. d) A otimizacao converte o codigo de alto nivel diretamente para codigo de maquina. Resposta correta: b) A otimizacao transforma o codigo fonte para uma linguagem mais eficiente, sem alterar seu comportamento. Explicacao: O objetivo da otimizacao e melhorar a eficiencia do codigo gerado, tornando-o mais rapido ou reduzindo o consumo de recursos, como memoria, sem mudar seu funcionamento. O que e um erro semantico que pode ser identificado por um compilador? a) Erro de digitacao em palavras-chave. b) Erro na estrutura do codigo, como parenteses nao fechados. c) Erro que ocorre quando o codigo e logicamente incorreto, como a tentativa de dividir por zero. d) Erro de falta de ponto e virgula no final de uma linha. Resposta correta: c) Erro que ocorre quando o codigo e logicamente incorreto, como a tentativa de dividir por zero. Explicacao: Os erros semanticos ocorrem quando o codigo e sintaticamente correto, mas sua logica esta errada, resultando em comportamentos inesperados. O que caracteriza a "analise semantica" na compilacao? a) Ela verifica a conformidade do codigo com a gramatica da linguagem. b) Ela verifica se as operacoes do programa sao logicamente validas, como tipos de dados compativeis. c) Ela converte o codigo fonte para codigo de maquina. d) Ela realiza a otimizacao do codigo gerado. Resposta correta: b) Ela verifica se as operacoes do programa sao logicamente validas, como tipos de dados compativeis. Explicacao: A analise semantica verifica a coerencia logica do programa, como o uso correto de tipos de dados e a conformidade de operacoes. O que significa o termo "linkagem" em um processo de compilacao? a) A traducao do codigo fonte para codigo de maquina. b) A combinacao de varios arquivos objeto para criar um arquivo executavel. c) A analise do codigo fonte para identificar erros de sintaxe. d) A otimizacao de codigo para melhorar a execucao. Resposta correta: b) A combinacao de varios arquivos objeto para criar um arquivo executavel. Explicacao: Durante a linkagem, o compilador combina os diferentes arquivos objeto gerados em etapas anteriores e resolve as referencias externas para formar o programa executavel final. Qual e a funcao do "gerador de codigo" em um compilador? a) Organizar a execucao do codigo no computador. b) Traduzir o codigo intermediario para um formato de codigo de maquina especifico para a arquitetura do processador. c) Verificar a sintaxe do codigo fonte. d) Realizar a otimizacao do codigo executavel. Resposta correta: b) Traduzir o codigo intermediario para um formato de codigo de maquina especifico para a arquitetura do processador. Explicacao: O gerador de codigo converte o codigo intermediario, que e uma forma abstrata, em um codigo de maquina que pode ser executado pelo processador. O que e um "erro de tempo de execucao" em um programa compilado? a) Um erro que ocorre quando o compilador nao consegue traduzir o codigo fonte. b) Um erro que ocorre quando o programa e executado, como uma falha ao acessar um arquivo inexistente. c) Um erro que ocorre quando o codigo fonte nao segue a gramatica da linguagem. d) Um erro que ocorre durante a fase de linkagem do programa. Resposta correta: b) Um erro que ocorre quando o programa e executado, como uma falha ao acessar um arquivo inexistente. Explicacao: Erros de tempo de execucao acontecem enquanto o programa esta sendo executado, ao contrario dos erros de compilacao, que impedem o programa de ser gerado. Qual e o papel de um "otimizador" dentro de um compilador? a) Melhorar a legibilidade do codigo fonte. b) Garantir que o codigo gerado seja o mais eficiente possivel em termos de desempenho e consumo de recursos. c) Traduzir o codigo de maquina para codigo de alto nivel. d) Verificar se o codigo esta sintaticamente correto. Resposta correta: b) Garantir que o codigo gerado seja o maiseficiente possivel em termos de desempenho e consumo de recursos. Explicacao: O otimizador visa melhorar a performance do codigo gerado, reduzindo o tempo de execucao e o uso de memoria, por exemplo, sem alterar o comportamento do programa. Em qual das fases do compilador o "gerador de codigo" e utilizado? a) Analise lexica. b) Analise sintatica. c) Geracao de codigo. d) Analise semantica. Resposta correta: c) Geracao de codigo. Explicacao: O gerador de codigo e utilizado na fase de geracao de codigo, quando o codigo intermediario e convertido em codigo de maquina executavel. O que e uma "linguagem intermediaria" em um compilador? a) Uma linguagem de alto nivel usada para program