Fala, leitor! Tudo bem? Habacuque aqui.

Na primeira parte da nossa história, vimos como os cartões perfurados ajudaram a criar uma das ideias mais importantes da computação: dar instruções para uma máquina.

Com o tempo, os computadores evoluíram e passaram a guardar essas instruções na própria memória. Mas surgiu um novo problema.

Como escrever essas instruções?

No início, programar significava trabalhar praticamente na linguagem da própria máquina, usando códigos formados por números que podiam ser representados por 0 e 1.

Imagine criar um programa inteiro olhando para sequências como:

00101101 10010110 01100101

Funcionava, mas era extremamente difícil para uma pessoa escrever e conferir tudo aquilo.

Foi aí que surgiu o Assembly.

Em vez de decorar códigos numéricos, o programador poderia escrever comandos pequenos, como:

ADD

para somar.

SUB

para subtrair.

MOV

para movimentar uma informação.

Isso facilitou muito a vida dos programadores.

Mas aqui aparece uma pergunta curiosa.

Se o computador só entende números, como ele conseguia ler a palavra ADD?

A resposta é simples: ele não conseguia.

A máquina nunca enxergou ADD como uma palavra.

Quando o programador escrevia as letras A, D e D, cada uma dessas letras era transformada em um código numérico. Nos sistemas que utilizavam cartões perfurados, por exemplo, diferentes combinações de furos podiam representar diferentes caracteres.

Então, para nós, existia:

ADD

Mas, dentro da máquina, existia algo parecido com:

número da letra A
número da letra D
número da letra D

É aí que entra um programa chamado assembler.

O assembler já estava escrito em uma linguagem que a máquina conseguia executar. Sua função era comparar aqueles números com padrões que ele conhecia.

De maneira simplificada, ele fazia algo assim:

Se o primeiro caractere corresponde ao código de A, o segundo corresponde a D e o terceiro também corresponde a D, então essa sequência representa a instrução ADD.

Depois disso, o assembler substituía aquela sequência pelo código numérico da verdadeira instrução de soma daquele processador.

Ou seja:

O programador escrevia ADD.

As letras viravam números.

O assembler comparava esses números.

Reconhecia o padrão.

E gerava a instrução que o processador realmente sabia executar.

A máquina nunca precisou aprender inglês.

Ela só precisava comparar números.

E isso deixa tudo muito menos misterioso.

Com o tempo, porém, os programadores queriam escrever de uma maneira ainda mais fácil.

Foi assim que começaram a surgir linguagens mais próximas da linguagem humana, entre elas o COBOL, criado no final da década de 1950 para aplicações comerciais e administrativas.

Agora era possível escrever algo parecido com:

ADD VALOR1 TO VALOR2

Para uma pessoa, já parece quase uma frase.

Mas novamente temos o mesmo problema.

O computador não sabe o que significa ADD, VALOR1 ou TO.

Então entra em cena outro programa: o compilador.

O compilador recebia aquele texto e começava a desmontá-lo seguindo regras que haviam sido programadas nele.

Ao encontrar ADD, sabia que precisava realizar uma soma.

Ao encontrar VALOR1, procurava onde aquele valor estava armazenado.

Ao encontrar VALOR2, fazia o mesmo.

Então uma frase simples como:

ADD VALOR1 TO VALOR2

poderia ser transformada em algo parecido com:

Pegue o primeiro valor.

Pegue o segundo valor.

Some os dois.

Guarde o resultado.

Depois, essas operações eram transformadas em instruções numéricas que o processador conseguia executar.

No fim, portanto, não existia mágica.

Existia uma cadeia de traduções.

O ser humano escrevia palavras.

Essas palavras eram representadas por números.

Um programa analisava esses números.

E finalmente gerava os códigos que os circuitos do processador haviam sido construídos para executar.

Foi assim que, pouco a pouco, programar deixou de significar conversar diretamente com a máquina e começou a significar escrever instruções cada vez mais próximas da nossa própria maneira de pensar.

E foi justamente isso que abriu caminho para as linguagens modernas.

Mesmo assim ainda parece um pouco sObrenatural nao é ? kkk

Na parte 3, vamos continuar dessa etapa e descobrir como os computadores começaram a chegar às universidades, empresas e casas, como novas linguagens surgiram e como a programação começou a caminhar em direção aos sistemas, aplicativos e à internet que conhecemos hoje.

Um abraço e até lá!