Escolar Documentos
Profissional Documentos
Cultura Documentos
David Sanguinetti
form.sanguinetti@gmail.com
Contents
1 Introdução 1
2 Nota Histórica 1
4 Referências 4
1 Introdução
Programar não é nada de particularmente novo. A toda a hora e todo o instante
o fazemos no quotidiano: nem que seja programar o que faremos nos 5 min.
seguintes. O gesto concreto e palpável de programar encontramo-lo à noite
quando se programa o despertador para tocar na manhã seguinte, ou de manhã,
quando se programa o microondas para aquecer o pequeno-almoço durante x
segundos.
2 Nota Histórica
O primeiro visionário a conceber uma máquina capaz de ser programada para
agir de acordo com uma qualquer necessidade do utilizador foi Charles Babbage,
em 1834 que, embora esta máquina com válvulas e vapor não tenha sido con-
cluı́da com o autor em vida, ficou popularizada como a primeira séria tentativa
de criar máquinas reconfiguráveis — neste caso, através de cartões perfurados
— de acordo com a necessidade.
Esta máquina programável captou a atenção de Ada Lovelace que, sendo
formada em Matemática, teve a iniciativa de criar o primeiro progama para
o motor analı́tico de Babbage, colocando-o a calcular e imprimir uma sequência
de números Bernoulli.
O primeiro computador efectivamente a ver a luz do dia foi o ENIAC, ap-
resentado no ano de 1943 pelo Departamento de Defesa Norte-Americano, que
servia para calcular a trajectória balı́stica da artilharia. O princı́pio básico de
programação destes computadores — que ocupavam salas enormes —, era o de
1
Figure 1: O motor analı́tico de Charles Babbage
1
ligar e desligar cabos e tubos que, em determinadas configurações efectuavam
as operações pretendidas.
. data
1 Daqui que nasce o conceito de bug/insecto, que era quando algum insecto se introduzia
2
h e l l o m e s s a g e db ’ H e l l o , World ! ’ , 0 dh , 0 ah , ’ $ ’
. code
main p r o c
mov ax , @data
mov ds , ax
mov ah , 9
mov dx , o f f s e t h e l l o m e s s a g e
int 21h
mov ax , 4 C00h
int 21h
main endp
end main
porque um processador, com todos os seus milhões e milhões de nano inter-
ruptores, a única coisa que sabe fazer é operações de somar 0’s e 1’s e, depois
de passar um assembler no código acima, este será convertido para linguagem
máquina e mostrará no ecrã “Hello World”.
3.2 A, B, C!
Mexer nos registos dos processadores com as instruções acima, pode parecer
mais simples que operar directamente com bits, mas na verdade estes detalhes
devem ser escondidos, recorrendo a uma linguagem de um nı́vel mais alto como
por exemplo:
/∗ H e l l o World program ∗/
#i n c l u d e <s t d i o . h>
main ( )
{
p r i n t f ( ” H e l l o World ” ) ;
exit (0);
}
O mesmo “Hello World”, desta vez usando a linguagem de programação C.
Como se pode constatar existe um decréscimo substancial de linhas de código
necessárias e é muito mais intuitivo.
O C assume-se como uma linguagem ainda hoje muito necessária por ser das
mais próximas da máquina, sem prejudicar significativamente a inteligibilidade
do código. include significa “incluir” e é fácil perceber que o programador pre-
tende incluir algo — neste caso um cabeçalho de input/output; mas a máquina
não compreende outra lı́ngua que não a dela, logo é necessário recorrer a um com-
pilador, que não é mais que um programa que faz “a ponte” entre a linguagem de
programação de alto nı́vel para instruções equivalentes que a máquina consiga
compreender.
3
3.3 Ainda mais além... Linguagens interpretadas
Com o avançar dos anos, da tecnologia e o surgimento de novos e cada vez mais
exigentes consumidores de micro-informática, linguagens de programação mais
acessı́veis e potentes tiveram de ser criadas. Porém o confronto que a seguir se
apresenta já consta desde os antı́podas da micro-informática:
• Facilidade de utilizaço ao versus Potência;
4 Referências
[1] Schildt, Herbert, Java, The Complete Reference, McGraw Hill, Seventh Edi-
tion, Kindle Edition, 2007
[2] Wang, Wallace, Beginning Programming All-in-One Desk Reference For
Dummies, Wiley, Kindle Edition, 2008.
2 também
o .Net Framework foi um projecto iniciado com esse intuito, mas gorado ao
fim de pouco tempo pela própria Microsoft. Não obstante, um grupo de programadores
independentes transpuseram com algum sucesso C# em Linux, no projecto Mono