É incrível acreditar que por mais complexas que sejam as tarefas realizadas por um computador, elas não passam de um conjunto de 0 e 1 para a máquina. 0 quando não existe corrente elétrica no circuito e 1 quando existe corrente elétrica no circuito. O processador possui milhões de chaves microscópicas, chamadas transistors, que ligam e desligam reagindo à corrente. Algumas chaves, por sua vez, são dispostas em conjuntos de micro circuitos, chamados circuitos lógicos, que interpretam 0 e 1 como informações lógicas um pouco mais complexas, AND, NOT, OR, para ajudar em operações básicas. Com a ajuda dos transistors e outras microscópicas unidades, o processador é capaz de realizar operações como mover a informação 1101000101100011 para o endereço de memória 1111001010100111.
E se tivéssemos que escrever programas inteiros utilizando apenas 0 e 1 para que pudessemos ser compreendidos pelo computador? Computadores não entendem nada além de dados, endereços e operações básicas em binário, mas através das linguagens de programação somos capazes de criar programas de uma maneira mais conveniente para nós humanos. Uma linguagem de programação é definida por um conjunto de regras semânticas e sintáticas, mais próximas da nossa linguagem natural, que com a ajuda de um compilador são transformadas em instruções mais simples que podem ser compreendidas pelo computador.
Ada Augusta King, a Condessa de Lovelace, nascida em Londres, 10 de dezembro de 1815, é considerada a primeira programadora da história. Sua mãe a incentivou no aprendizado da matemática para tentar afastá-la de seu pai, poeta inveterado que abandonou a família depois do nascimento da pequena Ada. Na juventude, ela desenvolveu uma amizade com o também matemático e filosófo Charles Babbage. Ela desenvolveu diversos algoritmos para serem computados pela máquina analítica, um dos grandes inventos de Babbage, considerado o primeiro computador da história. Em 1953, mais de cem anos depois de sua morte, suas notas sobre a máquina analítica foram republicadas e reconhecidas como a primeira descrição de um hardware e software.
Quando Grace Hooper desenvolveu o primeiro compilador em 1952 todos ficaram abismados:
Eu tinha um compilador rodando e ninguém lhe tocava. Eles me diziam que computadores apenas podiam fazer aritmética.
Graças ao seu trabalho foi-se possível criar linguagens de programação de alto nível, não mais era necessário se programar em linguagem de máquina.
Grace Murray Hopper nasceu em Nova Iorque, 9 de dezembro de 1906. Serviu às forças armadas americanas e foi analista de sistemas da Marinha dos Estados Unidos e depois condecorada como almirante. Depois de concluir seus serviços às forças armardas, tornou-se empregada da Eckert-Mauchly Computer e participou da equipe de desenvolvimento do UNIVAC I, o primeiro computador comercial da história. Foi ela quem criou a linguagem de programação Flow-Matic que serviu como base para a criação do COBOL, linguagem que ainda hoje é amplamente utilizada em sistemas críticos, como sistemas de operações bancárias, por exemplo.