Baner strony: Karty perforowane i technika dziurkowania
▦ Karty perforowane technika dziurkowania Facebook

Informacje o kartach

Programowanie i praca z kartami

Proces tworzenia i przygotowania programu

  1. Programowanie Rozpoczynało się od ręcznego zapisania instrukcji na papierowych formularzach kodowania. Każda linia kodu na formularzu odpowiadała później jednej karcie dziurkowanej.
  2. Dziurkowanie Programista lub operator dziurkarki przepisywał kod z formularza na karty przy użyciu dziurkarki klawiszowej, tworząc fizyczną talię kart, zwaną "talią źródłową" (source deck).
  3. Zlecenie W czasach kart dziurkowanych programiści rzadko mieli bezpośredni dostęp do komputera. Programista składał w centrum obliczeniowym formularz zlecenia dołączając swoją talię źródłową.
  4. Kompilacja Operator komputera wczytywał program zwany kompilatorem, który analizował talię źródłową. Po pewnym czasie (od kilkudziesięciu minut do kilku godzin) programista odbierał wydruk. Jeśli kompilacja przebiegła pomyślnie (program nie zawierał błędów), oprócz wydruku otrzymywał nową talię kart, zwaną "talią wynikową" (object deck), zawierającą program w postaci kodu maszynowego. Dopiero ta druga talia zawierała program gotowy do wykonania przez maszynę.
  5. Debugowanie (usuwanie błędów) Był to proces powolny i żmudny. Najczęściej pierwszy wynik kompilacji zawierał listę błędów. Programista analizował wydruk, znajdował błąd, ręcznie nanosił poprawkę na formularzu kodowania, tworzył nową, pojedynczą kartę z poprawną linią kodu, a następnie fizycznie odnajdował i wymieniał błędną kartę w talii źródłowej. Po tej poprawce ponownie składał zlecenie do centrum obliczeniowego (pkt 3). Proces ten powtarzano aż do uzyskania działającego programu.

Proces w skrócie

01 Formularze kodowania
02 Dziurkowanie kart
03 Zlecenie do centrum
04 Kompilacja poprawna?
tak
05 Program gotowy (talia wynikowa)
nie
Debugowanie
  • poprawka na formularzu
  • dziurkowanie nowej karty
  • odnalezienie i wymiana błędnej karty w talii

Ułatwienia i utrzymanie porządku

Ponieważ ludzie mieli problem z odczytaniem układu dziurek, więc stosowano urządzenia zwane interpreterami. Maszyna ta odczytywała dziurki i drukowała ich tekstowy odpowiednik na górnej krawędzi karty w tzw. strefie opisu karty. Dzięki temu ta sama karta była w pełni czytelna dla komputera oraz dla człowieka.

Talia kart perforowanych przygotowana do pracy z programem
Efekt pracy interpretera: czytelny dla człowieka zapis znaków na karcie

Praca z programem była fizyczną czynnością wymagającą np. przenoszenia pudełek z kartami, układania czy wyszukiwania odpowiednich kart w całej talii. Przypadkowe rozsypanie talii składającej się z setek lub tysięcy kart było katastrofą. Poprawne ułożenie kart ułatwiał ścięty lewy lub prawy górny narożnik. Dzięki temu szybko dało się zidentyfikować kartę która była ułożona w pliku odwrotnie.

Kolorowe karty perforowane z widocznymi ściętymi narożnikami
Karty perforowane ze ściętym prawym lub lewym narożnikiem

Jeżeli, dzięki ściętym narożnikom, udało się przywrócić kartom właściwą orientację, trzeba było przywrócić ich właściwą kolejność. Standardowa karta perforowana używana w informatyce miała 80 kolumn. W niektórych systemach do zapisu instrukcji programu wykorzystywano kolumny od 1 do 72. Kompilatory, czyli programy tłumaczące kod na język zrozumiały dla maszyny, odczytywały dane tylko z tego obszaru. Pozostałe kolumny, o numerach od 73 do 80, były ignorowane przez kompilator. Programiści wykorzystywali to wolne miejsce do zapisywania numerów sekwencyjnych lub identyfikatorów. Dzięki temu każda karta w talii miała swój unikalny numer porządkowy. Jeśli programista przypadkowo upuścił pudełko z kartami i talia się pomieszała, numery w ostatnich kolumnach pozwalały uratować pracę. Wymieszane karty wkładano do maszyny zwanej sorterem. Było to urządzenie wielkości biurka, które potrafiło sortować karty według dziurek w wybranych kolumnach.

Sorter kart dziurkowanych
Sorter kart dziurkowanych Autor: waelder, CC BY-SA 3.0, via Wikimedia Commons

Gdy z jakiegoś powodu numerowanie kart było niemożliwe, aby utrzymać karty w odpowiedniej kolejności, programiści często rysowali markerem ukośną linię wzdłuż górnej krawędzi talii. Jeśli karta wypadła, można było łatwiej znaleźć jej miejsce na podstawie narysowanej linii.

Talia kart perforowanych z programem
Talia kart perforowanych z programem Autor: ArnoldReinhold, CC BY-SA 3.0, via Wikimedia Commons

W praktyce pracy z kartami perforowanymi stosowano "naprawianie" błędów zamiast wyrzucania całej karty. Najczęściej używano tzw. łatek (ang. patches) - były to małe kawałki cienkiego papieru lub specjalne samoprzylepne naklejki korekcyjne, które zaklejały błędnie wybite otwory i przywracały kartę do stanu "brak dziurki" w danej pozycji. Umożliwiało to ponowne poprawne dziurkowanie (czasem - zależnie od miejsca i jakości naprawy). Często miało to sens ponieważ błędy przy ręcznym dziurkowaniu były nieuniknione, a operatorzy zazwyczaj pracowali pod presją czasu. Poprawka była szybsza i tańsza niż ponowne dziurkowanie całej karty. Naprawiane karty miały swoje minusy - mogły się zacinać w czytnikach (np. w sorterach lub tabulatorach), a łatki mogły się odkleić.

Karta perforowana z widoczną poprawką za pomocą naklejki korekcyjnej
Karta perforowana z poprawką

Kolejnym ważnym ułatwieniem pracy było stosowanie kart kolorowych. Programy w językach takich jak Fortran czy COBOL, potrafiły składać się z tysięcy pojedynczych kart, a jedna karta odpowiadała tylko jednej linii kodu. Programiści umieszczali jaskrawe, kolorowe karty (np. różowe, niebieskie, zielone) jako tzw. karty komentarzy (ang. comment cards) lub nagłówki (ang. headers). Dzięki temu, patrząc na stos kart z boku lub z góry, można było natychmiast dostrzec, gdzie kończy się jeden plik/podprogram/procedura, a zaczyna kolejna. Zapobiegało to konieczności żmudnego, ręcznego wertowania kart jedna po drugiej w poszukiwaniu konkretnej linii. Jako kart rozdzielających sekcje celowo używano kart z odwrotnie przyciętym rogiem lub bez ścięcia. Dzięki temu jaskrawy separator fizycznie wyróżniał się (wystawał) z profilu idealnie równego stosu kart, działając jak zakładka w książce.

Kolorowe karty perforowane używane jako separatory w talii
Kolorowe karty używane jako separatory

Istniały też karty, które nie tylko zabarwieniem (barwiona górna krawędź), ale i nadrukiem sygnalizowały w jakim miejscu talii się znajdujemy. Umieszczane były na końcu pliku lub końcu rekordu.

Karta perforowana sygnalizująca koniec pliku lub rekordu
Karta oznaczająca koniec pliku lub rekordu