С момента изобретения языков программирования и до середины 1970-х годов большинство программистов создавали, редактировали и сохраняли свои программы построчно на перфокартах .
Перфокарта — это гибкий носитель однократной записи, который кодирует данные, чаще всего 80 символов. Группы или «колоды» карт образуют программы и наборы данных. Термин часто используется взаимозаменяемо с перфокартой , разница в том, что неиспользованная карта — это «перфокарта», но после того, как информация была закодирована путем прокалывания отверстий в карте, она стала «перфокартой». Для простоты в этой статье термин « перфокарта» будет использоваться для обозначения любого из них.
Часто программисты сначала писали свою программу на специальных бланках, называемых листами кодирования, стараясь отличать цифру ноль от буквы O , цифру один от буквы I , восемь от B , два от Z и так далее, используя местные соглашения, такие как « перечеркнутый ноль ». Затем эти формы брали операторы перфоратора, которые с помощью перфоратора , такого как IBM 026 (позже IBM 029 ), пробивали колоду. Часто другой оператор перфоратора затем брал эту колоду и снова пробивал с листов кодирования, но с помощью «верификатора», такого как IBM 059 , который проверял, что первоначальная перфорация не имела ошибок.
Ошибка при наборе текста обычно приводила к необходимости перепечатывать всю карту. Редактирование программ облегчалось путем реорганизации карт и удаления или замены измененных строк; программы резервировались путем копирования колоды или записи ее на магнитную ленту.
В небольших организациях программисты могли выполнять перфорацию самостоятельно, и во всех случаях у них часто был доступ к перфоратору для внесения небольших изменений в деку.
LET Описание ниже описывает магазин, полностью состоящий из IBM («магазин» — это жаргон программистов, обозначающий сайт по программированию), но магазины, использующие другие марки мэйнфреймов (или мини-компьютеров ), будут иметь похожее оборудование, хотя из-за стоимости или доступности может иметь оборудование другого производителя, например, магазин NCR , ICL , Hewlett-Packard (HP) или Control Data будет иметь компьютеры, принтеры и т. д. NCR, ICL, HP или Control Data, но иметь перфораторы IBM 029. Огромные размеры IBM и ее влияние в отрасли часто приводили к тому, что многие из ее соглашений были приняты другими поставщиками, поэтому приведенный ниже пример довольно похож на большинство мест, даже в магазинах, не принадлежащих IBM.
Типичная корпоративная или университетская компьютерная установка будет иметь ряд комнат с большой комнатой с ограниченным доступом и кондиционером для компьютера (похожей на сегодняшнюю серверную комнату) и меньшей, более тихой смежной комнатой для отправки заданий. Рядом будет комната, полная перфораторов для использования программистами. Учетная машина IBM 407 может быть установлена, чтобы позволить перечислять вновь созданные или отредактированные программы (распечатывать на сложенной веером бумаге ) для корректуры. IBM 519 может быть предоставлена для воспроизведения программных колод для резервного копирования или для перфорации последовательных номеров в столбцах 73-80.
В таких установках мэйнфреймов , известных как «закрытые магазины», [a] программисты отправляли программные колоды, часто сопровождаемые картами данных, которые программа должна была считать, человеку, работающему за стойкой в компьютерном зале. В часы пик было обычным делом стоять в очереди, ожидая отправки колоды. Чтобы решить эту проблему, устройство чтения карт можно было переустановить (или изначально установить) за пределами компьютерного зала, чтобы программисты могли выполнять « самостоятельную » отправку заданий.
Во многих компьютерных установках карты с противоположным срезом угла (иногда без среза угла) использовались в качестве «разделителей заданий», так что оператор мог одновременно укладывать несколько колод заданий в считыватель карт и иметь возможность быстро разделять колоды вручную, когда он вынимал их из укладчика. Эти карты (например, карта JCL «JOB» для начала нового задания) часто были предварительно перфорированы в больших количествах заранее. [1] Это было особенно полезно, когда главный компьютер не считывал карты напрямую, а вместо этого считывал их изображения с магнитной ленты , которая была подготовлена в автономном режиме меньшими компьютерами, такими как IBM 1401. После считывания карт оператор компьютера возвращал колоду карт — обычно в один из набора ячеек, помеченных в алфавитном порядке, на основе первой буквы фамилии программиста. Поскольку программы запускались в пакетном режиме, могло пройти значительное время, прежде чем какой-либо печатный или перфорированный вывод был помещен в эти самые ячейки. Однако на нечасто используемой системе можно было внести изменения и перезапустить программу менее чем за час.
Специализированные программисты могли не спать до полуночи, чтобы сделать несколько быстрых оборотов. Использование этого дорогостоящего оборудования часто взималось со счета пользователя. Мейнфрейм мог стоить миллионы долларов, а использование измерялось в секундах на задание.
Меньшие компьютеры, такие как IBM 1620 и 1130 , и мини-компьютеры, такие как PDP-11, были менее дорогими и часто работали как «открытый магазин», где программисты имели исключительное право пользования компьютером в течение определенного периода времени. Перфоратор обычно располагался поблизости для быстрых исправлений – хотя многие из этих меньших машин работали от перфоленты .
Многие ранние языки программирования, включая FORTRAN , COBOL и различные языки ассемблера IBM , использовали только первые 72 столбца карты — традиция, которая восходит к устройству чтения карт IBM 711, использовавшемуся в сериях IBM 704/709/7090/7094 (особенно IBM 704 , первом массовом компьютере с арифметическим оборудованием с плавающей точкой ), который мог считывать только 72 из 80 столбцов за один проход.
Столбцы 73-80 игнорировались компиляторами и могли использоваться для идентификации или порядкового номера, так что если колода карт была выброшена, ее можно было восстановить в правильном порядке с помощью сортировщика карт . В зависимости от языка программирования, отладочные выходные операторы можно было быстро активировать и «закомментировать», используя карты с такими операторами, пробитыми символом комментария ( например , «C» в Фортране) в столбце 80 карты; переворачивание карты торец к торцу помещало «C» в ведущий столбец, что превращало содержимое теперь перевернутой карты в комментарий, оставляя физическую карту на месте в колоде.
(Альтернативный, несовершенный, но широко используемый метод поддержания правильного порядка карт — нанесение одной или нескольких диагональных полос по верхнему краю всех карт в колоде.)
В последующие годы, когда данные перфокарт были преобразованы в файлы магнитной ленты, порядковые номера часто использовались в качестве столбца в массиве в качестве индексного значения, которое можно было соотнести с временными последовательностями, например, в естественных науках, где данные на картах были связаны с периодическим выходом измерительного устройства, такого как самописцы уровня воды в реках и ручьях в гидрологии или температуры в метеорологии. Целые хранилища, полные колод карт, можно было сократить до гораздо меньших стоек с девятидорожечными лентами.