Перфокарта — это картонная пластина с набором отверстий, кодирующая информацию в двоичном виде. Дырки означали «единицу», их отсутствие — «ноль», что позволяло машинам считывать данные механически или оптически. Этот носитель стал первым массовым способом хранения программ и данных до появления магнитных лент и дисков.
Изначально идея перфокарт пришла из текстильной промышленности: в 1804 году Жаккард использовал перфокартон для управления ткацкими станками. Позже Херман Хollerith адаптировал технологию для обработки данных переписи населения в США. Так началась эра автоматизированной обработки информации, заложившая основы современной информатики.
Как устроена перфокарта и как она работает
Стандартная перфокарта формата IBM 5081 имела размеры 187,3 × 82,5 мм и толщину около 0,18 мм. На ней располагалось 80 столбцов и 12 строк перфораций. Каждый столбец кодировал один символ — цифру, букву или спецзнак — по специальной кодировке EBCDIC или Hollerith code.
Считывание происходило двумя способами: механическим (иголки проходят через дырки и замыкают контакты) и оптическим (луч света проходит через отверстия на фотоэлемент). Скорость считывания достигала 1000–2000 карт в минуту на высокоскоростных перфораторах. Данные передавались в компьютер для обработки или записывались на магнитную ленту для долгосрочного хранения.
Запись информации выполнялась перфоратором — устройством, которое «пробивало» дырки по команде компьютера или с клавиатуры оператора. Ошибку исправить было невозможно: испорченную карту выбрасывали и перфорировали новую. Это формировало особый подход к программированию — тщательную проверку кода до запуска.
Исторические этапы: от ткацких станков к мейнфреймам
1804 год — Жаккард создаёт ткацкий станок, управляемый перфокартоном. Это первый пример программируемого устройства. 1890 год — Херман Хollerith применяет перфокарты для пересчёта населения США, сокращая обработку с 8 лет до 2,5 лет. Его компания позже станет частью IBM.
1928 год — IBM вводит стандарт 80-колоночной карты с прямоугольными отверстиями, ставший индустриальной нормой на десятилетия. 1940–1950-е — перфокарты становятся основным интерфейсом для ранних компьютеров ENIAC, UNIVAC, IBM 701. Программисты писали код на бумаге, операторы перфорировали карты, затем колоду загружали в машину.
1960-е — появление терминалов и магнитных носителей начинает вытеснять перфокарты. 1984 год — IBM официально прекращает производство перфораторов. Но в некоторых банках и госучреждениях перфокарты использовали до 2000-х для обработки платёжных поручений и налоговых деклараций.
⚠️ Внимание: Перфокарты были крайне уязвимы к физическим повреждениям. Сгинутая, запятнанная или порванная карта становилась нечитаемой, что могло парализовать работу целого вычислительного центра.
Кодировки и форматы: не только IBM
Существовало несколько несовместимых стандартов перфокарт. Самый известный — 80-колоночный формат IBM с прямоугольными дырочками. Remington Rand (позже UNIVAC) использовал 90-колоночные карты с круглыми отверстиями и другой кодировкой. В СССР выпускали свои аналоги: карты ГОСТ 10859-75 с 80 столбцами, но собственной кодировкой GOST 19768-74.
Кодировка определяла, какой символ соответствует комбинации дырок в столбце. В формате IBM верхние 3 строки (зоны 12, 11, 0) и нижние 9 строк (цифры 1–9) образовывали 12-битный код. Например, буква «A» — дырки в зонах 12 и 1, цифра «5» — только в строке 5. Это позволяло кодировать до 256 символов.
| Параметр | IBM 5081 | UNIVAC 90-кол. | Советский ГОСТ | |
|---|---|---|---|---|
| Колонок | 80 | 90 | 80 | |
| Строк | 12 | 6 (2 ряда по 3) | 12 | |
| Форма дырки | Прямоугольная | Круглая | Прямоугольная | |
| Кодировка | EBCDIC / Hollerith | Remington Rand | ГОСТ 19768-74 | |
| Применение | Мейнфреймы IBM/360, 370 | UNIVAC 1100, 90/60 | ЕС ЭВМ, СМ ЭВМ |
Несовместимость форматов создавала проблемы при обмене данными между организациями на разном оборудовании. Часто приходилось переперфорировать карты на другой стандарт через промежуточную магнитную ленту.
Почему именно 80 колонок?
Размер 80 колонок не случаен. Он совпадал с шириной стандартной американской банкноты в конце XIX века (7,375 дюйма), что позволило использовать существующие штамповочные прессы и конвейеры для сортировки. К тому же 80 символов удобно помещали одну строку кода Fortran или COBOL, а также соответствовали ширине телетайпной ленты.
Роль перфокарт в рождении программирования
Перфокарты сформировали культуру программирования на десятилетия вперёд. Понятие «колода карт» (deck) стало синонимом программы. Программисты носили коробки с картами, обозначенные маркерами — цветными полосками по краю для быстрой сортировки. Утеря или перемешивание колоды означало потерю недели работы.
Появились специфические термины: «чэд» (chad) — выткнутый кусочек картона, накапливающийся в лотке перфоратора; «две жесткие копии» — требование хранить резервную колоду; «batch processing» — пакетная обработка задач, когда программы ставили в очередь и запускали последовательно. Это заложило основы современных систем очередей задач и CI/CD.
Первый компилятор Fortran (1957) и язык COBOL (1959) проектировались с учётом 80-колоночного формата. Столбцы 1–5 — для меток, 6 — для признака продолжения, 7–72 — для операторов, 73–80 — для нумерации карт. Это ограничение диктовало стиль кода до 1990-х, пока не ушли на терминалы с 132-символьными строками.
- 📦 Колода карт — физическая программа, которую можно потрогать
- 🔢 Нумерация в колонках 73–80 спасала при уронии коробки
- ✏️ Отладка на бумаге перед перфорацией — норма разработки
- 📚 Библиотеки подпрограмм хранились в картотеках
⚠️ Внимание: Перфокарты не позволяли интерактивной отладки. Программист отправлял задачу на выполнение и ждал результат часами. Ошибка в одной дырке требовала переперфорации карты и повторной отправки в очередь.
☑️ Что нужно знать о работе с перфокартами
Перфокарты за пределами вычислений: выборы, банки, метро
Перфокарты вышли далеко за рамки программирования. В США президентские выборы 1964, 1968, 1972 годов проводились с подсчётом голосов на перфокартах — избиратели пробивали дырку напротив кандидата. Система Votomatic стала стандартом до скандала с «висячими чадами» на выборах 2000 года во Флориде.
В банковской сфере перфокарты использовали для обработки чеков и платёжных поручений до 1990-х. В СССР система «ОНЭК» (Общенациональная экономическая классификация) работала на перфокартах для сбора статистики. Московское метро до 1995 года выдавало проездные на перфокартах — комбинированные с магнитной полосой.
В науке перфокарты применяли для хранения каталогов звезд, генетических последовательностей, сейсмических данных. Астрономия использовала их для фотометрии: каждая карта — измерение блеска одной звезды в разных фильтрах. Объёмы данных исчислялись миллионами карт, занимавших целые комнаты архивов.
Если найдёте старую перфокарту — не выбрасывайте. Коллекционеры платят $10–50 за карты с историческими программами (например, ранние версии Fortran, Apollo Guidance Computer). Карты с рукописными пометками программистов ценятся особенно высоко.
Почему перфокарты исчезли и чему нас это учит
Главные причины ухода: низкая плотность хранения (80 байт на карту 187×82 мм), медленная скорость (минуты на загрузку программы против миллисекунд у дисков), хрупкость и громоздкость. Магнитные ленты, затем дискеты и жёсткие диски предложили в тысячи раз больше ёмкости при меньших габаритах.
Но наследие перфокарт живет в современном IT. Концепция «последовательной загрузки инструкций» перешла в загрузчики ОС. Формат 80 символов в строке остался стандартом де-факто для терминалов, логов, diff-вывода и стиля кода (PEP 8, Google Style Guide). Пакетная обработка (batch) эволюционировала в очереди задач Kubernetes, Jenkins, GitHub Actions.
Перфокарты научили нас версионированию (нумерация карт), резервному копированию (две жесткие копии), модульности (подпрограммы на отдельных колодах) и документации (комментарии на картах). Это первый в истории случай, когда программа стала материальным объектом, которым можно управлять как товаром.
⚠️ Внимание: Современные системы CI/CD — это идеологические наследники перфокарт. Вы отправляете «колоду» (коммит) в «читатель» (пайплайн), ждёте результат, при ошибке правите «карту» и отправляете заново. Физический носитель сменился виртуальным, но процесс остался тем же.
Перфокарты превратили программирование из устной традиции в инженерию с материальными артефактами, версионированием и процедурами качества — основы современной разработки ПО.
Интересные факты и цифры
Коробка на 2000 перфокарт весила около 4,5 кг и занимала 30 см полки. Полная программа для IBM System/360 могла состоять из 10–20 тысяч карт — это 25–50 кг бумаги. Крупные вычислительные центры хранили миллионы карт в специальных климат-контролируемых помещениях.
Самая известная перфокарта в истории — карта с программой «Hello, World!» на Fortran, показанная в 1964 году на выставке в Нью-Йорке. В 1970-х художники начали использовать перфокарты для создания мозаик и портретов — «перфокарт-арт». В фильме «Матрица» (1999) Нео прячет нелегальный софт в коробке от перфокарт — отсылке к хакерской культуре 1980-х.
Последний крупный заказ перфокарт выполнила компания Printing Industries of America в 2011 году — для системы голосования в округе Луизиана. Сегодня перфокарты производятся только на заказ для музеев, коллекционеров и ностальгических проектов. Глобальный рынок оценивается в десятки тысяч долларов в год.
- 🎨 Перфокарт-арт — жанр визуального искусства 1970–1990-х
- 🎬 В «Матрице» коробка от перфокарт — тайник для дисков
- 🗳️ Выборы 2000 года в США остановили массовое применение
- 📦 Последний промышленный тираж — 2011 год, Луизиана
Как выглядела программа «Hello, World» на перфокартах Fortran IV (1964)
PROGRAM HELLO
WRITE (6,10)
10 FORMAT (13H HELLO, WORLD)
STOP
END
Каждая строка — отдельная карта. Колонки 1-5 пустые, 6 — пробел (не продолжение), 7-72 — код, 73-80 — номера 000100, 000200...
FAQ: частые вопросы о перфокартах
Сколько информации помещалось на одной перфокарте?
Стандартная 80-колоночная карта IBM вмещала 80 символов — ровно одну строку текста или одну инструкцию кода. В байтах это 80 байт (при 1 символе = 1 байту в кодировке EBCDIC). Для сравнения: современная дискетка 3,5″ хранила 1,44 МБ, что эквивалентно примерно 18 000 перфокарт.
Можно ли было стереть или переписать перфокарту?
Нет, перфокарта — носитель типа WORM (Write Once, Read Many). Дырки пробивались механически необратимо. Исправить ошибку можно было только заменой карты на новую. Существовали «заплатки» — клейкие полоски для закупорки ошибочных дырок, но считыватели часто их игнорировали или застревали.
Почему перфокарты были именно такого размера 187×82 мм?
Размер унаследован от долларовой банкноты США конца XIX века (7,375 × 3,125 дюйма). Херман Хollerith выбрал этот формат, чтобы использовать существующие банковские сортирователи и контейнеры для хранения. Стандарт зафиксировался и пережил смену нескольких поколений компьютеров.
Где сейчас можно увидеть работающую перфокарту?
В музеях вычислительной техники: Музей истории компьютеров в Маунтин-Вью (Калифорния), Музей вычислительной техники в Блечли-парк (Великобритания), Политехнический музей в Москве. Некоторые энтузиасты собирают работающие перфораторы и считыватели (IBM 029, 129, 2540) в домашних условиях.
Какое современное ПО эмулирует работу с перфокартами?
Эмуляторы мейнфреймов Hercules (IBM S/370, S/390, z/Architecture) и SIMH (DEC, UNIVAC, Honeywell) поддерживают виртуальные перфокарты — текстовые файлы, где каждая строка = одна карта. В GNU/Linux пакет punch позволяет конвертировать текст в формат перфокарт и обратно. Также существуют веб-эмуляторы перфораторов для обучения.
Перфокарта — это не просто кусок картона с дырочками. Это первый в истории материальный носитель алгоритма, который превратил программирование из ремесла в индустрию. Её ограничения сформировали стандарты кода, процессы разработки и даже мышление поколений инженеров. Понимая перфокарты, вы понимаете корни современного DevOps, версионирования и пакетной обработки данных.