TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

COMPILADORES E COMPUTABILIDADE

Por:   •  27/11/2015  •  Exam  •  2.320 Palavras (10 Páginas)  •  3.992 Visualizações

Página 1 de 10

ASSOCIADAS

Código da Prova: 25897906

Curso: Ciência da Computação

Série ou Período: 2º Bimestre - 7º Semestre

Tipo: NP2

I - Questões objetivas – valendo  10,00 pontos

Gerada em: 16/11/2015 12:03:37

Campus:_______________________________________________ Turma: CC7P34

Nome:_________________________________________________ Matrícula:____________

Assinatura:___________________________________________ Data:_________________

----------------------------------------------------------------------------------------------------------------------------

Questões de múltipla escolha

Disciplina: D571 - Compiladores e Computabilidade

Questão 1:  O linker tem a tarefa de reunir em um único programa os vários módulos-objeto obtidos a partir da tradução dos diferentes arquivos-fontes que compõem o programa. A esse arquivo resultante, dado por todas as partes devidamente encaixadas, damos o nome de Módulo Absoluto de Carga. Durante esse processo, o linker deve ser capaz de resolver as chamadas Referências Cruzadas, isto é, referência a elementos externos ao módulo corrente, e são conhecidos apenas após a ligação dos módulos. Tendo em mente essas atribuições, é incorreto afirmar que cabe ao linker:

RESPOSTA = E

A)Construir uma tabela com todos os módulos-objeto e registrar seus respectivos comprimentos.

B)Atribuir um endereço de carga a cada módulo-objeto, que identificará sua posição dentro do módulo de carga.

C)Relocar todas as instruções que contêm um endereço, adicionando ao seu endereço uma constante de relocação (que é o endereço inicial de cada módulo).

D)Encontrar todas as instruções que referenciam outros procedimentos e inserir nelas o endereço absoluto dos mesmos.

E)Copiar o módulo de carga para a memória principal, preparando o programa para a sua execução.

Questão 2:  Um processo algorítmico tem o objetivo de instruir o executor quanto às ações que deve realizar e à sua sequência. Para que isso ocorra é necessário que as instruções sejam dadas num formato compreensível àquele que as realizará. A programação de computadores é feita descrevendo o algoritmo em instruções de uma linguagem de programação e que, quando ditas de alto nível, apresentam características mais próximas à estrutura das linguagens humanas do que a das máquinas. Analise as alternativas a seguir e assinale a que julgar incorreta.

A)Quando a linguagem de codificação do algoritmo é de alto nível, precisamos de um compilador para que o algoritmo original seja traduzido para um equivalente dado em linguagem de baixo nível.

B)A construção de compiladores envolve conhecimentos relativos à estrutura da linguagem e à capacidade de tradução de uma para outra, preservando fielmente cada uma das funcionalidades descritas no código-fonte.

C)O uso de métodos formais permite tanto a especificação das linguagens de programação quanto a implementação de reconhecedores para suas estruturas, compreendendo, assim, os fundamentos teóricos para o estudo e a construção de compiladores.

D)Os conhecimentos relacionados à construção de compiladores encerram-se estritamente nesta atividade, oferecendo pouco ou mesmo nenhuma possibilidade de aplicação em outras áreas que não seja a tradução para a linguagem de máquina.

E)A compreensão das estruturas de uma linguagem e dos processos que envolvem a sua interpretação permitem que tais conhecimentos sejam aplicados não apenas na construção de compiladores, mas na interpretação de documentos estruturados, como as páginas da web; parâmetros em linhas de comandos ou padrões de endereços na web, por exemplo.

Questão 3:  Um analisador sintático LL(1) somente pode ser construído para uma classe restrita de gramáticas, que também recebem esse mesmo nome. Uma de suas características é que suas produções não apresentam prefixos comuns para cadeias distintas derivadas a partir de um mesmo não terminal. Ou seja, se duas produções que começam com o mesmo símbolo ou conjunto de símbolos (prefixo), por exemplo, como nas regras [pic 1]e sendo [pic 2]implicará numa interseção entre os conjuntos [pic 3]e o analisador não será capaz de decidir qual regra escolher utilizando um único símbolo da entrada. Usualmente o problema pode ser resolvido substituindo as produções da gramática que causam o problema por outras que acomodem essa restrição, mantendo a equivalência entre elas. Supondo a produção [pic 4]e considerando [pic 5] como a sentença vazia, quais, dentre as alternativas a seguir, representa uma substituição válida para resolver o problema apresentado e obter uma gramática equivalente que seja LL(1)?.

RESPOSTA = A

A)[pic 6]

B) [pic 7]

C)[pic 8]

D) [pic 9]

E) [pic 10]

Questão 4:  A respeito dos Carregadores (Loaders) é incorreto afirmar:

RESPOSTA = E

A) Avaliar a quantidade de memória necessária ao programa e solicitá-la ao SO.

B) Copiar o programa para a memória principal e preparar sua execução.

C) Ajustar os endereços do código executável de acordo com a posição base de carregamento.

D) Resolver os endereços de código dinamicamente em situações de swapping, pois os processos não necessariamente retornam a mesma posição.

E) Reunir os módulos objeto em um único elemento chamado de módulo absoluto de carga.

Questão 5:  Aspectos como a obrigatoriedade de declaração antes do uso, compatibilidade de tipos durante atribuições ou mesmo a adequação às regras de escopo na utilização dos identificadores são exemplos de questões que estão além do domínio sintático de uma linguagem de programação. Assim, a análise semântica é responsável, fundamentalmente, por realizar três tarefas básicas: construir uma descrição dos tipos e estruturas de dados definidas pelo programador; armazenar informações sobre os identificadores; e verificar os tipos e demais aspectos dependentes de contexto na estrutura do programa. Acerca da análise semântica de programas, assinale a alternativa correta:

...

Baixar como (para membros premium)  txt (15.9 Kb)   pdf (301.8 Kb)   docx (706.3 Kb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com