Ответ на пост «Программирование при свечах»3
Вообще-то перфокарты немного не так работают.
Там не совсем двоичная система, потому что двоичная позволяла бы хоть и больше информации туда впереть (зачем?), но читать «с листа» глазами человеку было бы сложнее. Во-первых, каждый столбец — это один символ, и обычно их помещается 80, и если нужно больше вместить, но есть способы пометить, что разные перфокарты относятся к одной строке. Например, в КОБОЛе в седьмом столбце продолжающей карты должен стоять минус (то есть одна дырка в строке чуть выше нуля), а в HLASM (ассемблере) наоборот, в семьдесят втором столбце продолжаемой карты нужно что-то пробить. В общем, за этими исключениями одна перфокарта — это и есть «строка кода», и когда кто-то говорит, что написал сто строк кода, это он накатал такую стопку в сантиметр-полтора толщиной.
Во-вторых, что самое главное у нас? Правильно, числа. Поэтому одна дырка в строках от нулевой от девятой будет означать визуально соответствующую ей цифру. На перфокарте помещаются ещё два ряда т.н. зоновых пробивок (потому что они идут как бы «в молоко», но всё равно наглядно, оба ряда хорошо отличимы друг от друга. Иногда их называли иксом и игреком, иногда 11 и 12 (без десятого, чтобы не путать тот с нулевым), кто как. И если прикинуть, то легко можно увидеть, что комбинация номерных отверстий от 1 до 9 с одным отверстием в зоновом или нулевом ряду даёт нам трижды девять вариантов, то есть 27, что как раз на одну позицию больше, чем букв в латинском алфавите. Так и кодируют буквы: двумя дырками, и даже остаётся место под символ дроби/деления.
Всё остальное, что не поместилось, надо делать какими-то другими двух/трёхдырочными комбинациями, и это уже зависит от машины, но на межделмашевских (IBM) мейнфреймах, например, уже жива была традиция кодировать информацию на 1-2-4-8, поэтому берём восьмой ряд, и с ним вместе, даже если взять от двойки до семёрки, получается четыре (пусто-0-X-Y) на шесть (2-3-4-5-6-7) = 24 места, на которые на ура влезают всякие скобки, запятые, кавычки и диезы. И визуально видно невооружённым глазом, что вот у нас пробита тройка, потом какая-то катавасия с восьмёркой и ещё чем-то, потом единица и потом четвёрка — если ты помнишь, что точка — это комбинация 3+8+Y, то молодец, но если и не помнишь, можно интуитивно догадаться, что перед тобой 3.14
Нет, вы не подумайте, так я вообще нормальный, просто лекции магистрам читаю по эволюции программного обеспечения, и там легаси — одна из главных тем, и в одной из лекций действительно учу их читать перфокарты. Не просто ради развлечения или потому что реально думаю, что это пригодится, просто чтобы показать, что кажущиеся случайными ответы на вопросы вроде «какой должен быть код у буквы зю» основаны на вполне реальных деталях современных или даже предшествующих им технологий.