ID 320827 Banca CESPE / CEBRASPE Órgão INMETRO Ano 2010 Provas CESPE - 2010 - INMETRO - Pesquisador - Ciência da Computação Disciplina Programação Assuntos C Linguagens de programação Em relação ao processo de geração de código executável, assinale a opção correta. Alternativas Em um programa implementado na linguagem C, a linha “#include ”, que faça parte do código fonte, é analisada diretamente pelo compilador, de forma que o conteúdo do arquivo stdio.h passa a ser considerado parte integrante do programa. Todo compilador de linguagem de programação de alto nível tem a responsabilidade de analisar o código fonte até a geração de código executável. Carregadores são programas usados exclusivamente por linguagens de programação de alto nível, com o objetivo de transferir um módulo de carga para a memória. A declaração de variável “int 7g;” em um programa escrito na linguagem Java, leva a um erro de compilação detectado durante a análise sintática. Em programas que usam funções disponíveis em bibliotecas, as referências a estas funções serão resolvidas pelo ligador. No caso de bibliotecas estáticas, o código objeto das funções é integrado ao módulo executável durante o processo de ligação. Responder Comentários (d) o correto seria: ...durante a análise léxica. e) CORRETA Em programas que usam funções disponíveis em bibliotecas, as referências a estas funções serão resolvidas pelo ligador. No caso de bibliotecas estáticas, o código objeto das funções é integrado ao módulo executável durante o processo de ligação.Na ciência da computação, biblioteca é uma coleção de subprogramas utilizados no desenvolvimento de software. Bibliotecas contém código e dados auxiliares, que provém serviços a programas independentes, o que permite o compartilhamento e a alteração de código e dados de forma modular. Alguns executáveis são tanto programas independentes quanto bibliotecas, mas a maioria das bibliotecas não são executáveis. Executáveis e bibliotecas fazem referências mútuas conhecidas como ligações, tarefa tipicamente realizada por um ligador.Bibliotecas compartilhadas Além de poderem ser carregadas estaticamente ou dinamicamente, bibliotecas também são classificadas de acordo com como são compartilhadas pelos programas. Bibliotecas dinâmicas quase sempre fornecem alguma forma de compartilhamento, permitindo que sejam utilizadas por diferentes programas ao mesmo tempo. Por definição, bibliotecas estáticas não podem ser compartilhadas pois são ligadas individualemente a cada programa. Bibliotecas estáticas permitem que os usuários liguem os programas sem ter que recompilar o seu código, economizando tempo de recompilação. Note que tempo de recompilação é menos importante tendo em vista a maior velocidade dos compiladores atuais, então este motivo não é tão forte quanto já foi um dia. Bibliotecas estáticas freqüentemente são úteis para desenvolvedores se eles desejam permitir que os programadores liguem à sua biblioteca, mas não querem dar o código fonte da mesma (o que é uma vantagem para o vendedor, mas obviamente não é uma vantagem para o programador que tenta usar a biblioteca).Fonte: http://www.las.ic.unicamp.br/~felipe/plh/Program-Library-HOWTO/x26.htmlhttp://pt.wikipedia.org/wiki/Biblioteca_%28computa%C3%A7%C3%A3o%29 a) Não é parte do programa, precisa do ligador, que fará referência única e exclusivamente às funções utilizadas pelo código. b) Código executável não; código objeto, uma vez que devemos manter a portabilidade. c) Carregadores são utilizados por linguagens de baixo nível também. d) Totalmente possível, em Java, declararmos uma variável com o nome de 7g. e) CORRETA