Alguém pode me explicar como os programadores programavam quando usavam cartões perfurados? Especificamente, o sistema de computadores de entrada usado para derivar instruções do próprio cartão perfurado.
Como não sei muito sobre retrocomputadores, qualquer sistema de entrada com o qual você esteja familiarizado seria bom. Respostas mais gerais também são apreciadas.
Pelo menos em qualquer máquina que eu já usei ou ouvi falar, você não alimentou cartões um de cada vez. Havia leitores de cartão automatizados que alimentavam e liam centenas de cartões por minuto (provavelmente em torno de 1000 / minuto, mas não tenho certeza das especificações exatas).
Em um caso típico, você escreveu o código manualmente e o inseriu nos cartões. Cada cartão contém uma linha de código (até 80 colunas). Você pegou o baralho de cartas para ser executado. Dependendo da lista de pendências, de uma hora a mais ou menos um dia depois, você recupera seu deck juntamente com uma impressão dos resultados.
Eu provavelmente deveria acrescentar: como o seu baralho de cartas funcionou como um trabalho, você não apenas enviou o código para o programa em si - teve que escrever algo vagamente semelhante a um arquivo em lote / script de shell com as instruções para compilar e executar seu código. O IBM JCL (por exemplo) permanece fortemente influenciado pelas origens do cartão Hollerith.
Outro ponto secundário: na maioria dos sistemas, lembro-me, você normalmente incluía um número de linha em cada cartão perfurado. Obviamente, você evitou derrubar um baralho, se pudesse, mas quando (não se) um foi derrubado, não foi exatamente a tragédia que muitos imaginam. Ponto interessante: pelo menos os classificadores de cartões que eu vi usavam uma classificação de radix - eles separavam os cartões em 10 posições, com base em um dígito do número da linha, e então "mesclavam" os juntos (coloque todos os cartões em um único bin na ordem) e repita quantas vezes você tiver dígitos nos números das linhas.
As cartas de Hollerith foram extremamente influentes - 80 colunas como limite ainda sobrevivem em um grau quase perturbador. Pelo menos nos mainframes dos Dados de Controle, coisas como o sistema de arquivos também foram fortemente influenciadas. Bem depois que os cartões Hollerith acabaram, os restos deles estavam visíveis no sistema operacional - por exemplo, os arquivos de texto eram frequentemente armazenados como uma série de registros de 80 caracteres, independentemente de poucos / quantos caracteres uma linha realmente continha. Ainda me lembro da minha surpresa com o "atraso" de um sistema como o Unix, onde você tinha que ler todas as linhas anteriores para encontrar a linha N de um arquivo de texto, em vez de apenas poder procurá-lo diretamente.
Eu acho que o que você descreve é uma maneira muito mais moderna de fazer as coisas. Classificador e alimentador de cartões? Meu Deus, minha mãe teria matado por isso ...: - D
littleadv 8/12/12
@littleadv: os cartões e alimentadores Hollerith são anteriores aos computadores. Eu tenho menos certeza sobre classificadores, mas tenho certeza que eles também.
Jerry Coffin
11
Nós costumávamos escrever nossos COBOL e RPGIII no papel manualmente e depois perfurávamos os cartões. Os 4 caracteres certos no cartão foram usados para o "número da linha" do programa. Sim, já deixei cair uma bandeja de cartões antes, tínhamos um classificador de cartões na mesma sala que o toque da tecla. Lembre-se, COBOL e RPGIII eram linguagens MUITO estritamente formatadas. Seu código precisava estar em determinadas ordens para ser executado. Em seguida, as bandeja de cartões foram colocadas para serem executadas e o operador executou o trabalho, fornecendo suas impressões juntamente com as bandejas de cartões. Felizmente, você não cometeu erros.
MB34 8/08/12
4
Tivemos um quarto com duas máquinas 029 de digitação , mas não classificamos. Portanto, mesmo que as cartas estivessem numeradas, costumávamos desenhar linhas diagonais nos topos dessa maneira . Se você deixasse cair uma caixa de carros, geralmente eles terminariam no chão em vários grupos, que você poderia juntar muito bem com base nessas linhas para começar e terminar o trabalho verificando se os números dos cartões estavam em ordem.
tcrosley
2
Os programas não foram apenas perfurados nos cartões, os dados de entrada e saída foram perfurados nos cartões. Os cartões eram a principal forma de armazenamento no final dos anos 70 e início dos anos 80. O espaço em disco era muito caro para ser usado para outra coisa que não o compilador e o carregador.
Gilbert Le Blanc
6
Você usou o cartão como editor.
Insira == perfure um novo cartão.
Mover == pegue o cartão e mova-o para o local certo.
Excluir == retire o cartão e jogue-o na lixeira
Copiar - os melhores perfuradores de cartão tinham uma função de cópia que poderia copiar outro cartão, coluna por coluna.
Substituir um caractere - use a função de cópia, mas digite os caracteres de substituição quando você alcançar o caractere que precisa substituir.
Excluir um caractere - use a função de cópia, mas segure o cartão copiado para impedi-lo de se mover e pressione espaço para cada caractere que você deseja "excluir"
Inserir caracteres - use a função de cópia, mas mantenha o cartão original imóvel enquanto digita o novo texto.
Na maioria das vezes, os cartões eram "imutáveis", mas era possível remover os personagens, colando nos buracos com uma fita adesiva fina e opaca.
Você leu em seu programa rodeado pela JCL apropriada e esperou a impressora cuspir os resultados. (Pode demorar horas!)
Minha mãe era uma programadora, então eu tinha toneladas desses cartões em casa enquanto crescia. O que eles fariam era codificar o programa nos cartões e, em seguida, alimentar os cartões no leitor de cartões, um por um (semelhante à forma como as urnas funcionam agora). Se você deixasse cair as cartas - você estaria com muitos problemas, porque você só tem o tempo da máquina X alocado para você e teria que organizá-las na ordem certa e reiniciar a alimentação da máquina novamente e tentar fazer a tempo antes que o próximo programador o expulse. Um programa trivial (em nossos padrões atuais) pode exigir centenas, se não milhares, desses cartões e horas de tempo da máquina para carregá-lo e executá-lo.
Por outro lado, havia provavelmente muito menos parasitas na indústria :)
haylem
Depende de como você define "parasita" .... :)
littleadv
Infelizmente, eu não quis dizer os famosos "bugs" da época, mas as hordas de pessoas que agora pulam na onda da TI.
haylem
Oh a nostalgia ... o mundo era um lugar tão melhor nos velhos tempos! Mas, na verdade, é principalmente porque tendemos a esquecer as coisas ruins. Havia todas as hordas de pessoas pulando em todos os tipos de bandwagons, sempre foram e sempre serão.
littleadv
Shhhh. Aqueles eram os dias. Isso é tudo. (Na verdade, eu não sei, eu não estava lá.)
haylem
1
Em alguns aspectos "não muito diferentes", em alguns aspectos "muito diferentes".
Eles escreveram o código fonte, geralmente no papel. Isso foi digitado novamente em cartões perfurados (uma linha de código-fonte por cartão, geralmente com números de linha, para que você pudesse facilmente consertar seu código-fonte quando ele terminasse na ordem errada).
O programa foi então prefixado com cartões contendo instruções sobre como compilar o programa e com o sufixo com instruções sobre como executá-lo e quais arquivos de dados usar (ou fitas para montar etc.).
Este foi então enviado aos operadores, que carregariam os cartões em um leitor de velocidade, executariam o trabalho e retornariam os resultados nas impressões.
Com um ciclo típico de edição / compilação / resultados da ordem de "amanhã", as pessoas tendem a ser mais paranóicas, verificando seu código em busca de erros de sintaxe.
Sem possibilidade de depuração interativa, a única maneira de rastrear a execução seria linhas de depuração impressas durante a execução.
Em alguns lugares, o código estaria na fita perfurada e não nos cartões perfurados.
Você usou o cartão como editor.
Na maioria das vezes, os cartões eram "imutáveis", mas era possível remover os personagens, colando nos buracos com uma fita adesiva fina e opaca.
Você leu em seu programa rodeado pela JCL apropriada e esperou a impressora cuspir os resultados. (Pode demorar horas!)
fonte
Muito devagar.
Minha mãe era uma programadora, então eu tinha toneladas desses cartões em casa enquanto crescia. O que eles fariam era codificar o programa nos cartões e, em seguida, alimentar os cartões no leitor de cartões, um por um (semelhante à forma como as urnas funcionam agora). Se você deixasse cair as cartas - você estaria com muitos problemas, porque você só tem o tempo da máquina X alocado para você e teria que organizá-las na ordem certa e reiniciar a alimentação da máquina novamente e tentar fazer a tempo antes que o próximo programador o expulse. Um programa trivial (em nossos padrões atuais) pode exigir centenas, se não milhares, desses cartões e horas de tempo da máquina para carregá-lo e executá-lo.
Muito entediante.
fonte
Em alguns aspectos "não muito diferentes", em alguns aspectos "muito diferentes".
Eles escreveram o código fonte, geralmente no papel. Isso foi digitado novamente em cartões perfurados (uma linha de código-fonte por cartão, geralmente com números de linha, para que você pudesse facilmente consertar seu código-fonte quando ele terminasse na ordem errada).
O programa foi então prefixado com cartões contendo instruções sobre como compilar o programa e com o sufixo com instruções sobre como executá-lo e quais arquivos de dados usar (ou fitas para montar etc.).
Este foi então enviado aos operadores, que carregariam os cartões em um leitor de velocidade, executariam o trabalho e retornariam os resultados nas impressões.
Com um ciclo típico de edição / compilação / resultados da ordem de "amanhã", as pessoas tendem a ser mais paranóicas, verificando seu código em busca de erros de sintaxe.
Sem possibilidade de depuração interativa, a única maneira de rastrear a execução seria linhas de depuração impressas durante a execução.
Em alguns lugares, o código estaria na fita perfurada e não nos cartões perfurados.
fonte