Перфокарта — это жесткий картонный носитель информации, на котором данные кодируются посредством наличия или отсутствия отверстий в заранее заданных позициях. На протяжении более чем полувека этот формат оставался единственным массовым способом ввода программ и данных в вычислительные машины, определив архитектуру раннего программного обеспечения и даже современные стандарты терминалов.

Физически перфокарта представляет собой прямоугольный лист специального картона повышенной плотности, стандартный размер которого закрепился на уровне 7 3/8 × 3 1/4 дюйма (187,325 × 82,55 мм). Именно этот формат, унаследованный от долларовых купюр США конца XIX века, стал мировой нормой для промышленности обработки данных до появления магнитных лент и дисков.

История возникновения: от ткачества к статистике

Прообраз перфокарты появился в 1804 году, когда Жозеф-Мария Жаккард использовал перфорированные картоны для управления узорами на ткацких станках. Идея дискретного управления сложным механизмом через бинарный код (дырка — нет дырки) заложила фундамент для программируемых устройств.

В 1890 году Герман Холлерит адаптировал технологию для пересчета населения США. Его табулятор считывал перфокарты электрически: иглы проникали в отверстия, замыкая цепи через ртуть. Это сократило обработку censo с лет до месяцев и заложил базу для будущей компании IBM.

К 1928 году IBM стандартизировала формат «карты Холлерита» с 80 столбцами и прямоугольными отверстиями, что обеспечило совместимость оборудования разных поколений. Этот стандарт выжил до эпохи персональных компьютеров.

📊 Какой этап истории перфокарт вам кажется наиболее значимым?
Применение в ткачестве (Жаккард)
Перепись населения 1890 (Холлерит)
Стандартизация IBM 1928 года
Эпоха мейнфреймов 1960-70-х

Физическая структура и принцип считывания

Классическая перфокарта разделена на 12 строк и 80 столбцов. Верхние две строки (12 и 11) назывались «зонами» и использовались для кодировки знаков препинания и букв, а строки 0–9 — для цифр. Каждый столбец мог хранить один символ.

Считывание происходило механически (щетки) или оптически (фотодиоды). При механическом считывании металлические щетки касались картоны; в месте отверстия щетка просачивалась на контактный барабан, замыкая цепь. Оптические станции работали быстрее и изнашивали карты меньше.

Точность перфорации и качества картона критически важны: заусенец или деформация приводят к ошибкам ввода. Поэтому карты хранили в кондиционируемых комнатах при влажности 40–60%.

ПараметрЗначение стандарта IBM 5081
Габариты187,325 × 82,55 мм
Толщина картона0,178 мм (0,007 дюйма)
Количество столбцов80
Количество строк12
Форма отверстийПрямоугольные, скругленные углы

Перфокарты в эпоху мейнфреймов

В 1960–1970-х годах перфокарты стали лицом корпоративной вычислительной техники. Программисты писали код на бумаге, перфоратористы переносили его на карты, а операторы скармливали колоды в ридеры IBM System/360 или CDC 6000. Одна ошибка в столбце 7 (метка продолжения в Fortran) могла сломать сборку всей программы.

Специализированные перфораторы вроде IBM 029 позволяли печатать символы на верхнем краю карты дублируя код, что упрощало визуальный контроль. Колоды карт перевозили в коробках по 2000 штук; крупные задачи занимали десятки коробок.

Ритуал «сдачи колоды» в вычислительный центр и ожидания вывода на принтере формировали уникальную культуру разработки того времени. Потеря одной карты в колоде из тысяч означала необходимость перепробивать весь участок.

  • 🔹 IBM 026 — первый массовый клавишно-перфорирующий аппарат (1949)
  • 🔹 IBM 029 — улучшенная модель с печатью интерпретации (1964)
  • 🔹 IBM 1442 — комбинированное устройство чтения/пробивки для System/360
  • 🔹 UNIVAC 1004 — плата управления на перфокартах вместо микрокода
⚠️ Внимание: механические перфораторы и ридеры требовали регулярной чистки от картонной пыли. Накопление пыли в контактах вызывало «фантомные» отверстия — ложные срабатывания, которых не существовало на карте.

Кодировка данных: от кода Холлерита к EBCDIC

Изначально каждый столбец кодировал одну цифру (1 отверстие в строках 0–9). Для букв и спецсимволов использовались комбинации зонных пробивов (строки 12, 11, 0) с цифровыми. Так возник код Холлерита — предок EBCDIC.

В EBCDIC 8 бит байта отображались на 12 строк карты нелинейно: старшие биты определяли зону, младшие — цифру. Это позволяло хранить 256 символов, но делало ручное чтение карты крайне сложным. Программисты часто держали под рукой шпаргалки соответствий.

Для двоичных данных (объектные модули, дампы памяти) использовался колонный бинарный формат: каждая из 12 строк соответствовала одному биту, а 80 столбцов давали 120 бит (15 байт) на карту. Плотность хранения была ничтожной по современным меркам.

Почему перфокарты выжили до 1980-х?

Магнитные ленты были дороже и менее надежны для архивного хранения. Перфокарту можно прочитать глазом, она не демагнитичивается и выжидает пожар лучше магнитной ленты. Банки и госучреждения доверяли бумаге больше, чем «невидимым» битам на ленте.

Причины устаревания и переход на новые носители

К концу 1970-х перфокарты уступили место магнитным лентам, гибким дискам и терминалам с CRT-экранами. Главные драйверы перехода: скорость ввода-вывода (ридеры давали 1000–2000 карт/мин против мгновенного ввода с клавиатуры), плотность хранения и износ оборудования.

Одна карта весит ~2,5 г. Гигабайт данных на перфокартах весил бы ~200 тонн и занимал бы склад. Магнитная кассета 3M DC300 того же объема помещалась в карман. Экономика пространства и труда сделала переход неизбежным.

Последним бастионом остались системы голосования и некоторые банковские архивы. В США перфокарты для голосования использовались до скандала с «висячими заусенцами» на выборах 2000 года во Флориде.

  • 🔹 Скорость: 2000 карт/мин ≈ 27 КБ/с против МБ/с на ленте
  • 🔹 Надежность: механика застревала, карты рвались, гнили от влаги
  • 🔹 Трудоемкость: армия перфоратористов, операторов, кладовщиков
  • 🔹 Отсутствие интерактивности: пакетная обработка, цикл «правка — пробой — сдача — жди утро»

Наследие перфокарт в современной информатике

Самое заметное наследие — стандарт 80 столбцов в текстовых терминалах и редакторах кода. Ширина экрана VT100, лимит строк в стандартах кодирования (PEP 8, Google Style) и даже ширина коммитов в Git — всё это эхо формата карты 1928 года.

Фраза Do not fold, spindle or mutilate («Не гните, не продырявляйте и не изуродовывайте»), напечатанная на каждой карте, стала мемом и символом уязвимости физических носителей. В Unix-культуре она напоминает о бережном отношении к данным.

Современные эмуляторы перфокарт (например, punched card reader emulators для Arduino) позволяют запускать старый код на железе эпохи, считывая карты веб-камерой. Это популярное хобби среди ретро-энтузиастов.

💡

Если вы настраиваете линтер или форматтер кода, оставьте лимит 80–100 символов — это не просто традиция, а гарантия читаемости кода в терминале, в diff-просмотрщике и на мобильном экране.

💡

Физические ограничения перфокарты (80 столбцов, фиксированная длина записи) определили архитектуру файловых систем, форматы исходного кода и интерфейсы командной строки, которые мы используем до сих пор.

Интересные факты и коллекционирование

Перфокарты использовались не только для кода. В 1960-х на них хранили музыкальные партитуры для ранних синтезаторов, чертежи для станков с ЧПУ и даже базы данных водителей в ГАИ СССР (серия ЕС ЭВМ). Художники создавали мозаики из цветных карт, используя их как пиксели.

Сегодня перфокарты — объект коллекционирования. Карты с рукописными заметками пионеров программирования (Джон Бэкус, Грейс Хоппер) продаются на аукционах за сотни долларов. Серийные карты IBM 5081 в коробке стоят дешевле, но требуют сухого хранения.

⚠️ Внимание: при покупке старых перфокарт на аукционах проверяйте наличие плесневых пятен. Зараженные карты необратимо портятся и могут заразить остальную коллекцию. Храните их в герметичных контейнерах с силикагелем.

☑️ Как сохранить перфокарту как экспонат

Выполнено: 0 / 5
Что такое «висячий заусенец» (hanging chad)?

Не полностью вытравленный кусочек картона, остающийся висеть на одной стороне отверстия. На выборах 2000 года в Флориде такие заусенцы не считывались машинами, что вызвало споры о подсчете голосов.

Почему именно 80 столбцов?

Размер карты подгоняли под существующие конверты и кассы для долларовых купюр США 1862 года выпуска. IBM сохранила габариты для совместимости с мебелью для хранения денег.

Можно ли прочитать перфокарту без специализированного оборудования?

Да, достаточно плоского сканера или даже фотоаппарата с высоким разрешением. Существует открытое ПО (например, punchcard-reader на Python), которое распознает отверстия на фото и конвертирует в текст.

Какую роль сыграли перфокарты в разработке Fortran?

Компилятор Fortran I (1957) требовал фиксированный формат: столбцы 1–5 — метки, 6 — продолжение, 7–72 — операторы, 73–80 — номер карты для сортировки после урония колоды. Этот формат диктовался геометрией карты.

Существуют ли современные аналоги перфокарт?

QR-коды и Data Matrix — концептуальные наследники: двумерные оптические метки с коррекцией ошибок. Но они хранят килобайты, а не байты, и считываются камерами, а не щетками.