Buscar

Apol 4 Compiladores nota 80

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Apol 4 Compiladores – NOTA 80
Questão 1/5 - Compiladores
“O Assembly é o exemplo clássico de linguagem de programação de baixo nível. Como este tipo de linguagem requer um conhecimento profundo da arquitetura, você não consegue usar o código escrito em uma arquitetura diferente da sua máquina. Além disso, é muito difícil memorizar todos os comandos e todas as instruções.” Esta é uma característica das linguagens de baixo nível. Por isso, criamos os compiladores e passamos para estes a responsabilidade de entender o conjunto de instruções de cada arquitetura.
Entre as opções a seguir, marque aquela que está errada:
Nota: 20.0
	
	A
	A existência de instruções e endereços diferentes torna difícil criar programas que sejam multiplataforma em linguagens de baixo nível;
	
	B
	Quanto mais baixo o nível da linguagem, mais próximo do código binário e mais difícil a programação multiplataforma;
	
	C
	O Assembly foi a primeira tentativa de facilitar a escrita de programas;
	
	D
	Ainda que programemos em linguagens de alto nível como o C/C++, em casos em que precisamos acessar diretamente o hardware, precisamos conhecer a arquitetura da máquina profundamente. Este é o caso da criação de drivers para dispositivos USB, por exemplo;
	
	E
	Com o uso de interpretadores as máquinas podem dispensar o uso do código binário e executar Javascript, por exemplo, diretamente.
Você acertou!
Questão 2/5 - Compiladores
Tomando como base a linguagem C/C++, para análise do processo de transcrição de código de alto nível em código de máquina, chamamos de Linker, a última fase deste processo. Com relação ao Linker, marque a alternativa correta:
Nota: 20.0
	
	A
	O Linker é responsável por verificar se não existe um erro de sintaxe no código escrito em uma linguagem de alto nível;
	
	B
	O Linker é responsável por verificar se não existe erros semânticos no código escrito em uma linguagem de alto nível;
	
	C
	O Linker é responsável por garantir que o código executável gerado estará adequado as necessidades específicas do sistema operacional;
Você acertou!
	
	D
	O Linker é responsável por verificar se não existe erros léxicos no código escrito em uma linguagem de alto nível;
	
	E
	Ainda que o Linker não encontre nenhum erro léxico no código fonte, cabe a ele indicar ao analisador sintático a existência de erros semânticos.
Questão 3/5 - Compiladores
“Definimos linguagem formal como sendo uma linguagem que possa ser rígida e precisamente especificada (BERGMANN, 2010) e que, de alguma forma, seja conveniente para o uso em computação, diferenciado da linguagem natural em rigidez e precisão.” Considerando esta definição de linguagem formal podemos afirmar que:
Marque a alternativa correta:
Nota: 0.0
	
	A
	Uma linguagem de programação não pode ser incluída no conjunto das linguagens formais;
	
	B
	As linguagens naturais, como o português ou o inglês, se fossem utilizadas para a criação de programas tornariam o processo de compilação muito lento e dispendioso;
	
	C
	As linguagens formais, no Brasil, obedecem às mesmas regras gramaticais que utilizamos em português;
	
	D
	Para a definição de uma linguagem formal, não precisamos nos preocupar com o conjunto de símbolos que serão utilizados por textos escritos nesta linguagem;
	
	E
	Os conceitos de linguagens formais, ainda que relacionados a computação, não têm nenhuma influência na criação de um compilador.
Questão 4/5 - Compiladores
“Chamamos de programa ao resultado da transcrição da linguagem de programação em linguagem de máquina que está adequadamente formatado para ser executado em uma determinada máquina. Por outro lado, chamamos de código ao texto que você escreve para sequenciar os comandos que representam o algoritmo que você quer executar. ” Desta forma é fácil perceber que a função do compilador é transcrever o código, escrito em linguagem de alto nível, em código binário que possa ser executado em uma dada arquitetura. Já, no que diz respeito aos interpretadores, podemos afirmar que:
Marque a alternativa errada.
Nota: 20.0
	
	A
	Interpretadores são compiladores que não necessitam da geração de um arquivo contendo código intermediário ou código executável;
	
	B
	A principal função do interpretador é transcrever código, em linguagem de alto nível, em linguagem de máquina;
	
	C
	Os interpretadores ocupam um nicho específico de mercado onde não é necessário compartilhar o código executável;
	
	D
	Em ambientes que usam interpretadores, em última análise, o código deve ser transcrito todas as vezes que você desejar usar o programa;
	
	E
	Uma das diferenças entre compiladores e interpretadores está no fato que os compiladores podem alterar o código binário gerado de acordo com os dados digitados pelo usuário durante o uso do arquivo executável criado durante o processo de transcrição.
Você acertou!
Questão 5/5 - Compiladores
“Chamamos de arquitetura o conjunto de especificações que determina como uma determinada CPU funciona. Existe, por exemplo a arquitetura x86 da Intel, a arquitetura ARMv8-A da empresa ARM e a arquitetura PowerPC que começou com a IBM mas hoje é uma arquitetura aberta.” Desta forma é fácil extrapolar este conceito para o universo dos compiladores. Sendo assim, podemos afirmar que:
Marque a alternativa errada.
Nota: 20.0
	
	A
	Compiladores convertem linguagens de alto nível para linguagem de máquina;
	
	B
	O código criado para a arquitetura ARM pode ser diretamente executado na arquitetura PowerPC;
Você acertou!
	
	C
	O uso de linguagens de alto nível permite que seja possível escrever um único código para todas as arquiteturas, desde que possamos compilar para esta arquitetura;
	
	D
	Cada arquitetura tem seu próprio conjunto de instruções e registradores;
	
	E
	Podemos escolher a arquitetura de acordo com a aplicação e, criar código que retirem o máximo de performance usando uma linguagem como o C deste que tenhamos um compilador capaz de produzir código para a arquitetura escolhida.

Outros materiais