Come funzionava la programmazione quando i programmatori usavano le punch card?

10

Ho visto questo: Imparare a programmare su schede perforate

e ho visto questo: link

ma lasciano molto a desiderare.

Qualcuno può spiegarmi in che modo i programmatori hanno programmato quando hanno usato le punchcard? Nello specifico, il sistema di computer di input utilizzato per ricavare istruzioni dalla stessa scheda perforata.

Non ne so molto dei retrocomputer, quindi qualsiasi sistema di input con cui hai familiarità andrebbe bene. Sono anche apprezzate risposte più generali.

    
posta Thomas Dignan 08.06.2012 - 06:44
fonte

4 risposte

16

In una parola, male.

Almeno su qualsiasi macchina che abbia mai usato o sentito, hai fatto non le schede di alimentazione una alla volta però. C'erano lettori di carte automatizzati che avrebbero alimentato e letto centinaia di carte al minuto (probabilmente circa 1000 / minuto, ma non sono sicuro delle specifiche esatte).

In un tipico caso hai scritto il codice a mano, poi lo hai pestato sulle carte. Ogni scheda contiene una riga di codice (fino a 80 colonne). Hai preso il mazzo di carte per essere eseguito. A seconda del backlog, ovunque da un'ora o giù di lì al giorno o giù di lì, hai ripreso il tuo mazzo con una stampa dei risultati.

Probabilmente dovrei aggiungere: dato che il tuo mazzo di carte ha funzionato come un lavoro, non hai solo inviato il codice per il programma stesso - hai dovuto scrivere qualcosa di vagamente simile a uno script batch / shell con le istruzioni per compilare ed esegui il tuo codice. IBM JCL (per un esempio) rimane strongmente influenzato dalle origini della sua carta Hollerith.

Un altro punto secondario: sulla maggior parte dei sistemi che ricordo, di solito includevi un numero di linea su ogni scheda perforata. Ovviamente hai evitato di far cadere un mazzo se potevi, ma quando (non se) uno si è lasciato cadere, non era proprio la tragedia che molti immaginavano. Interessante punto laterale: almeno le smistatrici di carte che ho visto utilizzavano una sorta di radix - separavano le carte in 10 contenitori, in base a una cifra del numero di riga, quindi "univano" quelle insieme (rilascia tutte le carte in un unico bin in ordine) quindi ripeti tutte le volte che hai digitato i numeri di riga.

Le carte di Hollerith erano estremamente influenti: 80 colonne come limite sopravvivono ancora a un livello quasi inquietante. Almeno sui mainframe di Control Data, cose come il file system sono state influenzate abbastanza pesantemente. Ben dopo che le carte di Hollerith erano per lo più sparite, i resti di questi erano visibili nel sistema operativo - ad esempio, i file di testo venivano spesso archiviati come una serie di record di 80 caratteri, indipendentemente da quanti pochi / molti caratteri fossero effettivamente contenuti. Ricordo ancora la mia sorpresa per "l'arretratezza" di un sistema come Unix in cui dovevi leggere tutte le righe precedenti per trovare la riga N di un file di testo, invece di limitarti a cercarlo direttamente.

    
risposta data 08.06.2012 - 07:11
fonte
6

Hai usato il card punch come editor.

  • Inserisci == punch una nuova carta.
  • Sposta == prendi la carta e spostala nel punto giusto.
  • Elimina == estrai la carta e gettala nel cestino
  • Copia - i migliori pugni delle carte avevano una funzione di copia che poteva copiare un'altra colonna colonna per colonna.
  • Ripeti un personaggio - usa la funzione copia ma digita i caratteri sostitutivi quando raggiungi il carattere che devi sostituire.
  • Elimina un personaggio - usa la funzione copia ma tieni premuta la carta copiata per fermarla e colpisci lo spazio per ogni personaggio che vuoi "cancellare"
  • Inserisci caratteri: usa la funzione copia ma tieni ferma la carta originale mentre digiti il nuovo testo.

Per la maggior parte le carte erano "immutabili", ma puoi rimuovere i personaggi registrando sui buchi con un sottile nastro adesivo opaco.

Hai letto il tuo programma circondato dal JCL appropriato e hai atteso che la stampante sputasse fuori i risultati. (Potrebbe essere ore!)

    
risposta data 08.06.2012 - 09:16
fonte
4

Molto lentamente.

Mia madre era un programmatore del genere, quindi ho avuto tonnellate di queste carte a casa mentre crescevo. Quello che avrebbero fatto era codificare il programma sulle carte, e poi inserire le carte nel lettore di carte una per una (simile a come funzionano le macchine per il voto ora). Se lasci cadere le carte, ti troverai in un sacco di problemi, perché hai solo un tempo X macchina assegnato per te e dovresti sistemarli nell'ordine giusto e riavviare il caricamento della macchina tutto da capo e provare a fare in tempo prima che il prossimo programmatore ti stacchi. Un programma banale (nei nostri standard attuali) potrebbe aver richiesto centinaia, se non migliaia, di tali carte e ore di tempo per caricarlo ed eseguirlo.

Molto noioso.

    
risposta data 08.06.2012 - 06:54
fonte
1

In qualche modo "non troppo diverso", in qualche modo "molto diverso".

Hanno scritto il codice sorgente, di solito su carta. Questo è stato poi riscritto su schede perforate (una riga di codice sorgente per scheda, solitamente con numeri di riga, in modo da poter facilmente correggere il codice sorgente quando è finito nell'ordine sbagliato).

Il programma è stato quindi preceduto da schede con istruzioni su come compilare il programma e suffisso con le istruzioni su come eseguirlo e su quali file di dati utilizzare (o nastri da montare, ecc. ecc.).

Questo come poi inviato agli operatori, che caricheranno le carte in un lettore di velocità, eseguiranno il lavoro e restituiranno i risultati in stampa.

Essendo un tipico ciclo di modifica / compilazione / risultati dell'ordine di "domani", le persone tendevano ad essere più paranoici nel controllo del codice per gli errori di sintassi.

Senza possibilità di debug interattivo, l'unico modo per tracciare l'esecuzione sarebbe rappresentato dalle linee di debug stampate durante l'esecuzione.

In alcuni punti, il codice sarebbe sul nastro di perforazione piuttosto che sulle schede perforate.

    
risposta data 27.12.2014 - 17:03
fonte

Leggi altre domande sui tag