Як працювало програмування, коли програмісти використовували перфокарти?


11

Я бачив таке: навчитися програмувати на пунш-картах

і я це бачив: http://en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era

але вони залишають бажати кращого

Хтось може мені пояснити, як програмісти програмували, коли вони використовували пуншкарди? Зокрема, система вхідних комп'ютерів використовується для отримання інструкцій із самої перфокартки.

Я не знаю багато про ретрокомп'ютери, тому будь-яка одна система вводу, з якою ви знайомі, буде добре. Більш загальні відповіді також оцінені.

Відповіді:


16

Словом, погано.

Принаймні, на будь-якій машині, яку я коли-небудь використовував або чув, ви не подавали картки по одній, хоча. Були автоматизовані зчитувачі карт, які могли б годувати та читати сотні карт на хвилину (ймовірно, близько 1000 / хвилину, але я не впевнений у точних специфікаціях).

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

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

Ще один незначний момент: у більшості систем, які я пам’ятаю, ви зазвичай включали номер рядка на кожну перфокартку. Ви, очевидно, уникали скидання колоди, якщо могли, але коли (не, якщо) один потрапив, це насправді майже не трагедія. Цікавий бік: принаймні сортувальники карт, які я бачив, використовували радіо-сортування - вони розділили картки на 10 бункерів, виходячи з однієї цифри номера рядка, а потім "об'єднають" їх разом (опустити всі картки в одну бін по порядку), потім повторіть стільки разів, скільки у вас були цифри в номерах рядків.

Карти Холлеріта були надзвичайно впливовими - 80 стовпців як обмеження все ще зберігаються майже тривожно. Принаймні, на мейнфрейми Control Control, такі речі, як файлова система, також впливали досить сильно. Після того, як картки Холлеріта зникли, залишки їх були помітні в ОС - наприклад, текстові файли часто зберігалися у вигляді записів у 80 символів, незалежно від того, скільки мало / скільки символів у рядку містилося насправді. Я все ще пам'ятаю своє здивування з приводу "відсталості" такої системи, як Unix, де вам довелося прочитати всі попередні рядки, щоб знайти рядок N текстового файлу, замість того, щоб просто мати можливість звертатися до нього безпосередньо.


Я думаю, що те, що ви описуєте, - це набагато більш сучасний спосіб робити речі. Сортувальник карт та подача карт? Боже, моя мама вбила б за це ...: - D
littleadv

@littleadv: Карти і годівниці Hollerith передують комп'ютерам. Я менш впевнений у сортуванні, але я майже впевнений, що вони теж роблять.
Джеррі Труну

1
Ми писали наші COBOL та RPGIII на папері вручну, потім самі пробивали картки. Праві 4 символи на картці були використані для "номера рядка" програми. Так, я раніше відкинув лоток карт, у нас був сортувач карт у тій же кімнаті, що й ключик. Пам'ятайте, COBOL та RPGIII були ДУЖЕ суворо відформатованими мовами. Ваш код повинен був мати певні замовлення для запуску. Потім лоток карт (картки) було взято для запуску, і оператор виконав завдання, давши вам свою роздруківку разом із вашими лотками карт. Сподіваємось, у вас не було помилок.
MB34

4
У нас була кімната з двома машинками для натискання клавіш 029 , але ніякого сортувальника. Тож, хоча картки були пронумеровані, ми використовували малювання діагональних ліній на вершинах, як це . Якщо ви кинули коробку машин, зазвичай вони опинилися б на підлозі в декількох групах, які ви могли б скласти разом досить добре на основі цих рядків, а потім закінчити роботу, перевіривши, чи номери картки в порядку.
tcrosley

2
Не тільки програми пробивались на картках, вхідні дані та вихідні дані пробивались на картках. Картки були основною формою зберігання наприкінці 70-х - початку 80-х років. Дисковий простір був надто дорогим, щоб його можна було використовувати лише для компілятора та завантажувача.
Гілберт Ле Блан

6

Ви використовували удар для карт як редактор.

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

Здебільшого картки були "непорушними", але ви можете видалити символи, наклеївши на отвори тонкою непрозорою липкою стрічкою.

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


4

Дуже повільно.

Моя мати була такою програмісткою, тож я мав удома тони цих карток під час дорослішання. Що вони б робили, це кодувати програму на картках, а потім подавати картки в картридер один за одним (подібно до того, як зараз працюють машини для голосування). Якщо ви кинули картки - у вас виникнуть великі неприємності, тому що у вас виділено лише час для машин X, і вам доведеться налаштувати їх у правильному порядку і перезапустити подачу машини знову і спробувати зробити це вчасно, перш ніж наступний програміст вас вигнать. Тривіальна (у наших нинішніх стандартах) програма може зажадати сотні, якщо не тисячі таких карток, і години машинного часу, щоб завантажити її та запустити.

Дуже нудно.


З іншого боку, паразитів, мабуть, було значно менше :)
haylem

залежить від того, як ви визначаєте "паразита" .... :)
littleadv

На жаль, тоді я не мав на увазі знаменитих "помилок", але орди людей, які зараз стрибали на ІТ-смузі.
хайлем

О ностальгія ... Світ був таким кращим місцем у старі часи! Але насправді, це здебільшого тому, що ми схильні забувати погані речі. Були всі орди людей, що стрибали на всіляких естакадах, завжди були і завжди будуть.
littleadv

Шшшх. То були дні. Це все. (Я насправді не знаю, я там не був.)
haylem

1

У чомусь «не надто різний», в чомусь «дуже різний».

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

Потім програма була встановлена ​​картками з інструкціями щодо компіляції програми та суфіксом із інструкціями щодо її запуску та файлів даних, які потрібно використовувати (або стрічки для монтажу тощо, тощо).

Після цього він подається операторам, які завантажують карти в швидкісний зчитувач, виконують завдання та повертають результати на роздруківках.

З типовим циклом редагування / компіляції / результатів на замовлення "завтра" люди схильні до того, щоб параноїдніша система перевіряла свій код на наявність синтаксичних помилок.

Без можливості інтерактивної налагодження єдиним способом відстеження виконання буде налагоджені рядки, надруковані під час виконання.

В деяких місцях код буде скоріше на ударній стрічці, ніж на перфокартах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.