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

11

Я видел это: Учимся программировать на перфокартах

и я видел это: http://en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era

но они оставляют желать лучшего.

Может кто-нибудь объяснить мне, как программисты программировали, когда они использовали перфокарты? В частности, система ввода компьютеров используется для получения инструкций от самой перфокарты.

Я не очень разбираюсь в ретрокомпьютерах, так что любая знакомая вам система ввода подойдет. Более общие ответы также приветствуются.

Томас Диньян
источник

Ответы:

16

Одним словом, плохо.

По крайней мере, на любой машине, которую я когда-либо использовал или слышал, вы не кормили карты по одной. Существовали автоматические устройства для чтения карт, которые могли кормить и читать сотни карт в минуту (вероятно, около 1000 в минуту, но я не уверен в точных характеристиках).

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

Я, вероятно, должен добавить: так как ваша колода карт работала как задание, вы не просто отправили код для самой программы - вы должны были написать что-то неопределенно похожее на командный файл / скрипт оболочки с инструкциями для компиляции и выполнения вашего код. IBM JCL (для одного примера) по-прежнему находится под сильным влиянием происхождения карт Hollerith.

Еще один незначительный момент: в большинстве систем, которые я помню, вы обычно указывали номер строки на каждой перфокарте. Вы, очевидно, избегали бросать колоду, если могли, но когда (не если) ее бросали, на самом деле это была не та трагедия, о которой многие воображают. Интересный момент: по крайней мере, сортировщики карт, которые я видел, использовали сортировку по основанию - они разделяли карты на 10 ячеек, основываясь на одной цифре номера строки, а затем «объединяли» их вместе (сбрасывали все карты в одну). по порядку), затем повторите столько раз, сколько у вас было цифр в номерах строк.

Карты Холлерита были чрезвычайно влиятельны - 80 столбцов как предел все еще выживают в почти тревожной степени. По крайней мере, на мэйнфреймах Control Data такие вещи, как файловая система, также были подвержены довольно сильному влиянию. Вскоре после того, как карточки Холлерита в основном исчезли, их остатки были видны в ОС - например, текстовые файлы часто сохранялись в виде серии 80-символьных записей, независимо от того, сколько символов на самом деле содержалось в строке. Я до сих пор помню свое удивление по поводу «отсталости» такой системы, как Unix, где вам пришлось читать все предыдущие строки, чтобы найти строку N текстового файла, вместо того, чтобы просто искать ее напрямую.

Джерри Гроб
источник
Я думаю, что то, что вы описываете, является гораздо более современным способом ведения дел. Сортировщик и устройство подачи карт? Боже мой, мою маму убили бы за это ...: - D
littleadv
@littleadv: карты Hollerith и устройства подачи предшествуют компьютерам. Я не уверен в сортировщиках, но уверен, что они тоже.
Джерри Коффин
1
Раньше мы писали наши Кобол и RPGIII на бумаге, а потом сами перфорировали карты. Правые 4 символа на карте были использованы для «номера строки» программы. Да, я бросил лоток с картами раньше, у нас был сортировщик карт в той же комнате, что и ключ. Помните, что COBOL и RPGIII были ОЧЕНЬ строго отформатированными языками. Ваш код должен быть в определенных порядках для запуска. Затем лоток (и) для карточек были взяты в эксплуатацию, и оператор выполнил задание, предоставив вам распечатку вместе с лотками для карточек. Надеюсь, у вас не было ошибок.
MB34
4
У нас была комната с двумя машинами с 029 клавишами , но без сортировщика. Поэтому, хотя карты были пронумерованы, мы обычно рисовали диагональные линии на верхушках, как это . Если вы уронили коробку с автомобилями, обычно они оказывались на полу в нескольких группах, которые вы могли бы довольно хорошо собрать, основываясь на этих строках, а затем закончить работу, проверив номера карт в порядке.
tcrosley
2
Мало того, что программы были перфорированы на карточках, входные и выходные данные перфорированы на карточках. Карты были основной формой хранения в конце 70-х и начале 80-х годов. Дисковое пространство было слишком дорогим, чтобы использовать его для чего-либо, кроме компилятора и загрузчика.
Гилберт Ле Блан
6

Вы использовали перфокарту в качестве редактора.

  • Вставьте == пробейте новую карту.
  • Переместить == забрать карту и переместить ее в нужное место.
  • Удалить == вынуть карту и выбросить ее в корзину
  • Копировать - лучшие штампы карт имели функцию копирования, которая могла копировать другую карту столбец за столбцом.
  • Изменить символ - используйте функцию копирования, но введите заменяющие символы, когда достигнете нужного символа.
  • Удалить персонажа - используйте функцию копирования, но удерживайте скопированную карточку, чтобы остановить ее перемещение, и нажмите пробел для каждого персонажа, которого вы хотите «удалить»
  • Вставка символов - используйте функцию копирования, но удерживайте оригинальную карту неподвижной при вводе нового текста.

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

Вы прочитали в своей программе, окруженную соответствующим JCL, и подождали, пока принтер покажет результаты. (Могут быть часы!)

Джеймс Андерсон
источник
4

Очень медленно.

Моя мама была таким программистом, поэтому у меня были тонны этих карт дома, когда я росла. Они должны были кодировать программу на карточках, а затем подавать карточки в считыватель карточек одна за другой (аналогично тому, как сейчас работают машины для голосования). Если вы уроните карточки - у вас будут большие неприятности, потому что у вас есть только машинное время X, и вам нужно будет расположить их в правильном порядке и перезапустить подачу машины снова и попытаться это вовремя, прежде чем следующий программист выгонит вас. Тривиальная (в наших нынешних стандартах) программа могла бы потребовать сотни, если не тысячи таких карт, и часы машинного времени, чтобы загрузить и запустить ее.

Очень нудно

littleadv
источник
С другой стороны, в этой отрасли, вероятно, было намного меньше паразитов :)
Хайлем
зависит от того, как вы определяете "паразит" .... :)
littleadv
К сожалению, я имел в виду не знаменитых «жуков» того времени, а толпы людей, которые сейчас запрыгнули на IT-фургон.
Хайлем
О ностальгия ... мир был таким лучшим местом в старые времена! Но на самом деле, это в основном потому, что мы склонны забывать плохие вещи. Там были все полчища людей, вскакивающих на всевозможные подножки, всегда были и всегда будут.
littleadv
Тсс. То были времена. Это все. (Я действительно не знаю, меня там не было.)
Хайлем
1

В некотором смысле «не слишком разные», в некоторых отношениях «совсем другие».

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

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

Это затем передается операторам, которые загружают карточки в скоростной считыватель, запускают задание и возвращают результаты на распечатках.

С типичным циклом редактирования / компиляции / результатов, который имеет порядок «завтра», люди склонны быть более параноидальными, проверяя свой код на наличие синтаксических ошибок.

При отсутствии возможности интерактивной отладки, единственный способ отследить выполнение - это отладочные строки, напечатанные во время выполнения.

В некоторых местах код будет на перфокарте, а не на перфокартах.

Vatine
источник