O JOHNNIAC foi um dos primeiros computadores construídos pela RAND, que foi baseado na arquitetura de von Neumann que tinha sido implementada pioneiramente em uma máquina IAS. Foi batizado em honra de von Neumann, abreviação para John v. Neumann Numerical Integrator and Automatic Computer. Johnniac é sem dúvida o computador, dentre os primeiros computadores, de tempo de vida mais longo, sendo usado quase continuamente de 1953 por mais de 13 anos, antes de finalmente ter suas atividades encerradas em 11 de Fevereiro de 1966, registrando mais de 50.000 horas de funcionamento.
(Considerando um estimativa realística de 3kips de velocidade rodou aproximadamente 540.000.000.000 instruções, um moderno 3GHz AMD64 executa 12 GIPS, assim, executa a mesma quantidade de trabalho de toda a vida do Johnniac em 45 s)
A história do Johnniac se inicia com a decisão, nos fins da década de 50, de se construir um computador na Rand.[1] Inicialmente na RAND, se especulava entre comprar máquinas ou produzir ela mesma. A decisão foi construir uma máquina e William Gunning se tornou o engenheiro do projeto. A qualidade do projeto era bastante avançada e o Johnniac representava o estado da arte naquele período.[1]
Depois de dois "resgates" de montes de sucatas, a máquina reside atualmente na Computer History Museum em Mountain View, Santa Clara County, California.
Como a máquina IAS, Johnniac usava palavras de 40 bits, e dispunha de 1.024 palavras de memória de tubo Selectron[2][3] , cada uma com 256 bits de dados. Duas instruções eram armazenadas em cada palavra em sub-palavras de 20 bits consistindo de uma instrução de 8 bits e um endereço de 12 bits, as instruções sendo operadas em série com o sub-palavra à esquerda sendo rodada em primeiro lugar. A máquina original tinha 83 instruções. Um registrador simples exercia o papel de acumulador, e a máquina também apresentava um registrador Q, para o quociente. Havia apenas uma condição de teste, para verificar se o mais alto bit de um registrador estava ligado. Não havia registradores de índice, e os endereços eram armazenados nas instruções; laços deviam ser implementados, modificando-se as instruções durante a execução do programa. Desde que a máquina tinha apenas 10 bits de espaço de endereço, dois dos bits do endereço eram inutilizados e às vezes eram utilizados para armazenamento de dados intercalando dados com as instruções.
Várias modificações foram feitas no sistema durante a sua vida. Em Março de 1955, 4096 palavras da memória de ferrite foram adicionadas ao sistema, substituindo os Selectrons anteriores. Isso exigia todos os 12 bits de endereçamento, e causou falhas em programas que armazenavam dados nos bits vagos. Mais tarde, em 1955, foi adicionada uma memória de tambor de 12k-palavras. Um somador baseado em transistores substituiu o original baseado em tubo em 1956. Várias mudanças foram feitas aos periféricos de entrada e saída também, e em 1964, um clock de tempo real foi adicionado para suportar time sharing.
Um legado Johnniac foi a linguagem de programação JOSS acronimo de (JOHNNIAC Open Shop System), uma linguagem de fácil utilização, que atendia bem a iniciantes. JOSS foi um antepassado da linguagem FOCAL da DEC e do MUMPS.
A Cyclone na Iowa State University era um clone direto de Johnniac, e era compatível em termos de instruções com ele (o ILLIAC I pode ter sido tão bem compatível). Ciclone foi posteriormente atualizado para incluir um sistema de hardware de ponto flutuante.