Uma das grandes vantagens que a tecnologia atual nos concede é a possibilidade de reproduzir o funcionamento de velhos sistemas com um alto nível de precisão. Dois exemplos clássicos e recorrentes são a máquina Enigma e o módulo de navegação Apollo, mas hoje vamos mencionar um caso ainda mais extremo. David Given, mais conhecido como Hjalfi no YouTube e no Twitter, decidiu criar o simulador de um computador dos anos 60 utilizado em vários projetos espaciais, e o mais impressionante é que compartilhou seu trabalho em um vídeo de oito horas e meia…
O OBP, sigla para On-Board Processor, foi projetado originalmente em 1968 e utilizado em diferentes projetos espaciais. Um dos mais importantes foi o telescópio OAO-3 Copernicus, o mais bem-sucedido de toda a série OAO (Orbiting Astronomical Observatory), com uma missão que se estendeu de agosto de 1972 a fevereiro de 1981.
David Given, também conhecido como Hjalfi, compartilhou detalhes técnicos muito interessantes sobre o OBP em sua página oficial: 18 bits, arquitetura Von Neumann, dados e código compartilhando o mesmo espaço de endereços, proteção de memória, DMA... em resumo, um sistema muito agradável para trabalhar. Agora, com uma frequência de 250 KHz, o OBP tem sérias limitações em relação à velocidade, mas David não se contentou com uma análise superficial e decidiu criar um simulador... do início ao fim.
Simulador do OBP, um computador dos anos 60
Seus olhos não te enganam: o vídeo dura oito horas e meia, e equivalem a três dias de trabalho. A introdução dura cinco minutos, mas o montador abrange mais de uma hora, e o resto está focado no simulador. Um dos detalhes mais interessantes do montador é que, de acordo com a documentação original, ele deveria ser programado usando linguagem natural. Na realidade, o montador não 'entende' as palavras por assim dizer, mas certas frases-chave estão associadas a instruções específicas.
Isso prova que programar em linguagem natural é algo que exploramos há décadas e que nunca terminou de ganhar tração. David explica que o idioma inglês é fundamentalmente ambíguo e dependente de contexto, enquanto as linguagens de programação são o oposto exato. Talvez a linguagem seja fácil de ler e interpretar para nós, mas também é fácil o montador se atrapalhar. Diante da possibilidade de erros, é mais confortável para o programador eliminar qualquer fonte de ambiguidade e escrever as instruções diretamente.
Quer saber mais? Link abaixo!
Site oficial: Clique aqui
Fonte: Hackaday