Você está na página 1de 3

Murilo das Dores Alves – 1920486100001

Programação Orientada a Objetos e Algoritmos em C++


Prof. Emerson Lima

Programação de Computadores

Questão 1 - Compile Explorer

Cada processador possui o seu conjunto de instruções, registradores, modos de


endereçamentos dentre outras coisas específicas. A todas essas especificidade é dado nome de
arquitetura do processador.

O Compile Explorer é um projeto que mostra a saída da compilação de um codigo fonte por vários
compiladores e arquiteturas. Ele pode ser acessado em https://godbolt.org.

Agora, considere o seguinte código C++:

int square(int num) {


return num * num;
}

Faça o que se pede:

a) Compile o código anterior para as diferentes arquiteturas de processador: i) x86-64 ii) ARM iii)
Arduino UNO. Explique por que o mesmo código C++ gera diferente instruções de máquinas. Pois
cada processador tem sua arquitetura, gerando sua própria linguagem de máquina para executar
instruções.

b) Compile o código anterior para a arquitetura x86-64 usando os compiladores: i) GCC ii) clang iii)
msvc. Explique por que os códigos compilados são diferentes. Apesar do uso de arquitetura de 64 bits
e quantidade de instruções semelhantes nos 3 casos, houveram códigos diferentes, pois cada compilador é
adaptado para cada diferente tipo de processador.

Questão 2 – O índice TIOBE

O índice TIOBE é um indicador da popularidade das linguagens de programação e pode ser


acessado em https://www.tiobe.com/tiobe-index. O índice pode ser usado para verificar se suas
habilidades de programação ainda estão atuais ou para tomar uma decisão estratégica sobre
"qual linguagem de programação deve ser adotada quando começar um novo sistema de software".
Esta última frase é bastante polêmica, iremos discutí-la em outro momento oportuno.

Monte a seguinte tabela escolhendo 5 linguagens do índice TIOBE e monte uma tabela, fazendo sua
pesquisa na Internet, aconselhamos ir na página oficial da linguagem ou na Wikipedia.
Linguagem Página Oficial, Página Não-Oficiais Compilada ou Compiladores /
Padrão ISO/RFC, Interpretada? Interpretadores
outro
C++ https://isocpp.org https:// compilada Clang, GCC, Intel,
cpp.reference.com ICC, ICX, msvc, zig,
ZapCC, RISC-V
ECMAScript https://www.ecma- https://www.ecma- interpretada ECMA-
international.org international.org/ 262/290/327/357/402
publications-and-
standards/standards/
ecma-262/
ADA https://www.adaic.org/ http:// compilada GNAT
libre.adacore.com/
download
CUDA https:// compilada Clang, HIP, NVCC
developer.nvidia.com/
cuda-zone
Ruby www.ruby-lang.org https://www.ruby- interpretada MRI, Cruby, JRuby,
lang.org/pt/about/ Rubinius, mruby,
IronRuby, MagLev,
Cardinal
Java https://www.java.com https:// Compilada / GCJ, Javac, jdk
openjdk.java.net/ Interpretada

D https://dlang.org http:// Compilada DMD, GDC, LDC,


www.dsource.org/ DGCC

Questão 3 – Como você distribui um programa compilado? E um programa interpretado? A


compilação traduz as instruções de alto nível do código inteiro em uma só vez para as de linguagem de
máquina. Já a interpretação, traduz as instruções de alto nível na medida que as encontra para linguagem
de máquina, ou seja, converte o código fonte em ações, traduzindo uma linha de cada vez

Questão 4 – O que é mais rápido no desenvolvimento: um programa compilado ou um programa


interpretado? Explique por quê. O programa interpretado é mais fácil de desenvolver, pois as edições,
manutenção e portabiblidade são mais práticas, não precisando de descompiladores.

Questão 5 – O que é mais rápido na execução: um programa compilado ou um programa


interpretado? Explique por quê. O compilado é rápido na execução, pois traduz todas as linhas de
código de uma só vez de linguagem de alto nível para a de máquina. O interpretado demora, por que o
trabalho de conversão é feito aos poucos sempre quando uma execução é declarada ou executada, ou seja,
ocorre no formato linha por linha.

Questão 6 – O que é mais fácil de proteger contra cópia: um programa compilado ou um programa
interpretado? Explique por quê. O compilado é mais fácil de proteger contra cópias, pois para editar,
precisa-se do descompilador como Java Decompiler primeiramente, para alterar o arquivo
posteriormente.
Questão 7 – O que é mais fácil de modificar (após desenvolvido): um programa compilado ou um
programa interpretado? Explique por quê. O programa interpretado é mais fácil de alterar, pois basta
abrir o arquivo, ver o que está e modificar. Já o compilado é difícil, por que precisa de descompilador
como Java Decompiler.

Questão 8 – O que é mais seguro de executar na sua máquina (assuma que é um programa
desenvolvido por um terceiro): um programa compilado ou um programa interpretado? Explique
por quê. O programa compilado, pois é mais rápido na execução e precisa de descompilador para
tradução.

Questão 9 – O que é mais fácil de distribuir na Internet: um programa compilado ou um programa


interpretado? Explique por quê. O interpretado é mais fácil de se distribuir pela internet, pois o cliente
recebe o código interpretado pelo browser sem a necessidade de execução no servidor e também se adapta
as despadronizações dos navegadores. Já o programa compilado é mais difícil, por que precisa-se de
reinstalar o sistema quando uma nova atualização aparece disponível.

Você também pode gostar