Если вы решаете кроссворд и ищете ответ на загадку «дырявая картонка эвм 10 букв» — правильный вариант: перфокарта. Этот термин обозначает плотный картонный носитель информации, на котором данные кодировались дырками в строго определённых позициях. До появления магнитных лент и дисков именно перфокарты были главным способом ввода программ и данных в электронно-вычислительные машины (ЭВМ).
История этого изобретения начинается задолго до изобретения компьютеров — в текстильной промышленности XVIII века. Француз Жозеф-Мари Жаккард в 1804 году применил перфокарты для управления ткацкими станками: дырки на карточках задавали рисунок ткани. Позже эту идею заимствовал Герман Голлерит для обработки данных переписи населения США 1890 года. Его табулятор считывал перфокарты электрически — замыкая контакты через отверстия в ртутные чаши. Так зародилась перфокартная обработка информации, ставшая стандартом на полтора столетия.
От ткацкого станка к мейнфрейму: этапы эволюции
Первые перфокарты Жаккара были сделаны из плотной бумаги и считывались механически — иглами, проходящими через отверстия. Голлерит перешёл на картон и электрическое считывание, что ускорило процесс в сотни раз. В 1928 году компания IBM стандартизировала формат: карта размером 7 3/8 × 3 1/4 дюйма (187,3 × 82,6 мм) с 80 столбцами и 12 строками. Этот стандарт, известный как IBM Card или Hollerith Card, доминировал в индустрии до 1970-х годов.
В Советском Союзе аналогичный формат получил обозначение ГОСТ 10859-64 — карта с 80 столбцами и 12 рядами, но с метрическими размерами: 187,4 × 82,5 мм. Отечественные ЭВМ серии «Минск», «Урал», БЭСМ и ЕС ЭВМ работали именно с таким форматом. Перфокарты выпускали на специализированных заводах — например, в Казани и Зеленограде — тиражами в миллиарды штук в год.
- 📜 1804 — Жаккард применяет перфокарты на ткацких станках
- ⚡ 1890 — Голлерит создаёт электрический табулятор для переписи США
- 🏭 1928 — IBM вводит стандарт 80-колонной карты
- 🇷🇺 1964 — Утверждён ГОСТ 10859-64 для советских ЭВМ
Как устроена перфокарта: кодировка и формат
Классическая 80-колонная перфокарта имеет 12 строк перфорации. Верхние две строки (12-я и 11-я) называются зоновыми — они задают категорию символа: буква, цифра или спецзнак. Нижние десять строк (0–9) кодируют само значение. В одной колонке может находиться только одно отверстие в зоновых рядах и одно в числовых — так кодируется один символ. Всего возможных комбинаций: 256 уникальных кодов, что достаточно для латинского алфавита, цифр, пунктуации и служебных символов.
Советская кодировка (ГОСТ 10859-64) отличалась от американской EBCDIC. В ней использовалась собственная таблица соответствия дырок символам — например, буква «А» кодировалась дырками в рядах 12 и 1, «Б» — 12 и 2, а цифра «5» — просто дыркой в 5-м ряду. Это создавало проблемы при обмене данными с зарубежными системами: требовалась перекодировка на спецпереключателях или программно.
⚠️ Внимание: перфокарты не терпели сгибов, влаги и загрязнений. Одна случайная складка могла сделать карту нечитаемой для фотоэлектрического считывателя. Операторы хранили их в специальных коробках по 2000 штук — «коробах на 2к».
Перфокартное оборудование: от перфоратора до сортировщика
Работа с перфокартами требовала целого парка машин: перфораторы для ввода, проверяющие машины (верификаторы), сортировщики, воспроизводители, интерпретаторы (наносили печать на карту) и считыватели в составе ЭВМ. Перфоратор IBM 029 и его советский аналог КП-80 позволяли оператору набирать текст на клавиатуре — каждая нажатая клавиша мгновенно пробивала соответствующие отверстия. Опытный перфораторщик мог набирать до 12 000 знаков в час.
Сортировщики (например, IBM 083 или СМ-4) разделяли колоды карт по значениям в заданной колонке — это была база для реализации алгоритмов сортировки и слияния файлов. Воспроизводители (IBM 514, М-400) копировали данные из одной колоды в другую с возможностью перестановки полей. Интерпретаторы печатали читаемый текст по верхнему краю карты — без этого найти нужную карту в коробке на 2000 штук было практически невозможно.
Перфолента: младшая сестра перфокарты
Параллельно с картами развивалась перфолента — узкая бумажная лента (обычно 17,5 мм или 25,4 мм шириной) с 5, 6, 7 или 8 дорожками перфорации. Она была дешевле, компактнее и позволяла последовательный доступ к данным. Перфолента широко использовалась в телеграфной связи, на станках с ЧПУ и в микроЭВМ 1970-х (например, Электроника НЦ, МК-85). Считыватели перфоленты (фотоэлектрические или механические) стоили в разы дешевле карточных.
Однако перфолента имела критичный недостаток: невозможность случайного доступа и сложность редактирования. Исправить ошибку в середине ленты означало её перепробивку целиком. Перфокарты же позволяли вынуть ошибочную карту, пробить новую и вставить на место — гибкость, критичная для коммерческой обработки данных.
- 📏 Ширина 17,5 мм — 5-дорожечная лента (телеграф, БЭСМ-6)
- 📏 Ширина 25,4 мм — 8-дорожечная лента (ASCII, микроЭВМ)
- ⚡ Скорость считывания — до 1000 знаков/сек (фотоэлектрические)
- 💾 Ёмкость — ~1 КБайт на метр 8-дорожечной ленты
Роль перфокарт в программировании и.batch-обработке
До появления интерактивных терминалов программирование выглядело так: программист писал код на бумаге, перфораторщик пробивал колоду карт (одна карта — одна строка кода или одна инструкция Ассемблера/Фортрана), колода сдавалась в вычислительный центр. Там оператор загружал её в считыватель, задача ставилась в очередь (batch), а через часы или дни программист получал распечатку результата. Цикл «правка — перфорация — запуск — ожидание» мог занимать дни.
Это наложило отпечаток на культуру программирования: код писали максимально аккуратно, комментарии были роскошью (экономия карт), а отладку вели «в уме» или по дампам памяти на бумаге. Знаменитые IBM 360 и советские ЕС ЭВМ обрабатывали тысячи таких задач в сутки. Перфокарты также использовались для хранения баз данных: зарплатные ведомости, складские остатки, библиотечные каталоги — всё хранилось в картотеках из миллионов карт.
⚠️ Внимание: потеря одной карты в колоде из 5000 могла сбить весь расчёт. Нумерация карт (последние 8 колонок) была обязательной дисциплиной — она позволяла восстановить порядок после падения коробки.
☑️ Дисциплина работы с перфокартами в 1970-х
Закат эры: почему перфокарты ушли в историю
К 1970-м годам магнитные ленты и диски превзошли перфокарты по скорости, плотности записи и удобству. Магнитная лента хранила данные тысяч карт на одной кассете, а диск позволял прямой доступ. Терминалы с экранами (например, VT100, ЕС 7920) сделали возможным интерактивное программирование. Последний массовый заказ перфокарт в СССР пришёлся на конец 1980-х — для нужд ВЦ МВД и Госстраха. В США IBM прекратила производство перфораторов в 1984 году.
Тем не менее, перфокарты оставили глубокий след в терминологии: «батч-обработка» (batch — пакет карт), «колода» (deck), «пропуск карты» (skip), «80 колонок» как стандарт ширины строки в коде и терминалах. Даже современные текстовые редакторы по умолчанию часто ставят маркер на 80-й позиции — эхо эпохи перфокарт.
Почему именно 80 колонок?
Размер карты IBM 1928 года (7 3/8 дюйма) позволял разместить 80 столбцов при шаге перфорации 0,087 дюйма. Это было оптимальным балансом между количеством данных на карте и механической надёжностью считывания. Стандарт закрепился на десятилетия и перекочевал в терминалы, принтеры и стандарты кодирования.
Перфокарты в культуре и современном контексте
Образ перфокарты стал символом ранней компьютерной эпохи. В кино 1960–80-х (например, «2001 год: Космическая одиссея», «Колосс») стопки карт и шумящие считыватели создавали визуальный язык «компьютера». Хакерская культура 1970-х использовала выброшенные перфокарты для поделок — рождественские елки, закладки, даже одежда. В 1969 году студенты MIT сшили платье из перфокарт с программой на Фортране — один из первых арт-объектов цифровой эпохи.
Сегодня перфокарты можно встретить только в музеях (Музей вычислительной техники в Москве, Computer History Museum в Маунтин-вью) или у коллекционеров. Иногда они всплывают в неожиданных местах: в 2021 году в архиве одного из НИИ под Москвой нашли необработанную колоду с данными спутника 1978 года — её удалось считать на восстановленном считывателе и восстановить телеметрию.
- 🎬 Кино — перфокарты как реквизит «умной машины
- 🎨 Арт — платья, мозаики, скульптуры из выброшенных карт
- 🏛 Музеи — рабочие экспонаты перфораторов и считывателей
- 🔬 Наука — восстановление исторических данных с старых карт
Если найдёте старую перфокарту — не выбрасывайте. На задней стороне часто распечатана программа или данные. Это может быть уникальный исторический артефакт: фрагмент первой космонавигационной задачи, зарплатная ведомость 1975 года или чья-то курсовой проект на Фортране.
Техническое наследие: что осталось в современном ПО
Многие конвенции современного разработчика уходят корнями в ограничения перфокарт. Ширина экрана терминала 80 символов — прямой наследник 80 колонок. Формат фиксированной длины записи в COBOL и Фортране (72 значащих символа, 8 — для номера) диктовался геометрией карты. Даже в git рекомендуемая длина строки коммита — 72 символа — эхо той эпохи. Стандарт POSIX определяет LINE_MAX как 2048, но «хороший тон» — 80.
В языке Ада (разработанном в 1970-х для ВС США) до сих пор есть атрибут 'Image, выдающий строковое представление значения — наследник необходимости печатать дампы на перфокарты для отладки. В Unix-утилите fold параметр -w 80 по умолчанию. Перфокарты ушли, но их «геном» живёт в стандартах, которых мы следуем каждый день.
⚠️ Внимание: современные компиляторы и линтеры (golangci-lint, clang-tidy, black) по умолчанию ругаются на строки длиннее 80–100 символов. Это не каприз авторов инструментов — это память о карточке размером 187×82 мм, которая задала ритм всей индустрии на полвека.
Перфокарта — не просто «дырявая картонка», а первый промышленный стандарт машинного чтения данных, определивший архитектуру ПО, интерфейсы и культуру программирования на десятилетия вперёд.
FAQ: частые вопросы о перфокартах
Сколько информации помещалось на одну перфокарту?
Одна 80-колонная перфокарта хранила 80 символов — обычно одну строку кода, одну запись базы данных или одну инструкцию Ассемблера. Это примерно 80 байт (при 1 байте на символ в кодировке EBCDIC/ГОСТ). Для сравнения: современная дискетка 3,5" вмещала данные ~180 000 перфокарт.
Можно ли было перепробить перфокарту заново?
Нет. Перфокарта — носитель типа WORM (Write Once, Read Many). Дырки не залатать. При ошибке карту утилизировали и пробивали новую. Это заставило разработать культуру тщательной проверки (верификации) перед сдачей задачи в ВЦ.
Почему перфокарты имели именно такой размер?
Размер 7 3/8 × 3 1/4 дюйма совпадал с размером американской долларовой купюры конца XIX века (до 1929 года). Голлерит выбрал его намеренно: для карт уже существовали готовые коробки, счетачи, сортировщики от банковского оборудования. Стандарт застолбил на 50 лет.
Как считывалась перфокарта в ЭВМ?
Фотоэлектрически. Луч света (светодиод или лампа) проходил через отверстия на фоторезисторы или фотодиоды — по одному сенсору на колонку (80 сенсоров) или по 12 сенсоров с механическим продвижением карты. Скорость: 300–2000 карт в минуту (IBM 2540 — 1000 к/мин, ЕС 5060 — 600 к/мин).
Есть ли современные аналоги перфокарт?
Прямых аналогов нет, но идея «физического токена с кодированными данными» жива в QR-кодах, RFID-метках, бумажных ключах 2FA (например, YubiKey в режиме статических паролей) и даже в 3D-штрихкодах на упаковке лекарств. Принцип «дырка/нет дырки» → «бит 1/0» остался неизменным.