logo
Вступ до спец

2.1. Поневіряння пакетної обробки

Оскільки комп’ютери на початку 50-х років були нечисленні і страшенно дорогі, то й безпосередній доступ до них вкрай обмежувався. Програмістові треба було підготувати завдання на перфокартах та передати його в обчислювальний центр операторові. Цей посередник вводив карти у машину великим пакетом з іншими програмами.

Потім починалося очікування. Щонайменшої описки, наприклад, пропуск дужки, було достатньо, щоб машина припинила виконання програми. Виправивши відповідний рядок програми, програміст вимушений був знову чекати своєї черги. Навіть дуже хороші програмісти часто витрачали тижні на пошук та виправлення всіх помилок у програмі. Проте проблеми не обмежувалися лише незручністю пакетної обробки. Програмування на асемблері по суті мало у чому відрізнялося від програмування у двійковому коді. Якщо програма поводилася “дивно”, то єдиним способом пошуку помилки було вивчення так званогодампу пам’яті – довгої паперової роздруківки, що містить таємничі числові коди.

На початку 60-х років молоді математики Дартмутського коледжу (США) Кемені(за походженням угорець) таКурц висунули ідею: навчати азам програмування всіх студентів незалежно від їх спеціалізації, будь то природничі або гуманітарні науки. На відміну від своїх колег з інших навчальних закладів, яких цілком влаштовувала методика навчання студентів шляхом читання лекцій, вони хотіли, щоб студенти опановували комп’ютер, створюючи для нього реальні програми. Але спочатку необхідно було подолати деякі перешкоди. Перш за все – машина в коледжі була всього одна. Спочатку вони почали шукати, чим замінити пакетний режим, і вирішили використовуватисистему розділення часу CTSS(Compatible Time Sharing System – Сумісна система розділення часу), яка була вперше запропонована в Массачусетському технологічному інституті (МТІ) у 1959 р. чудовим та різностороннім математикомДжоном Маккарті.

Одному з авторів пощастило слухати доповідь Д. Маккарті на 2-ій Всесоюзній Конференції Програмістів, що проходила у 1970 р. у м. Новосибірськ. На все життя запам’ятався його вислів (постулат програміста), який був надрукований величезними літерами на довгій паперовій стрічці за допомогою АЦПУ (Алфавитно Цифровое Печатающее Устройство) на наймогутнішому на той час комп’ютері БЭСМ-6(Большая Электронная Счетная Машина – серія вітчизняних ЕОМ, що були створені під керівництвом радянського вченого – академіка Сергія Олексійовича Лебедева):У кожній “готовій”, ретельно відлагодженій програмі є хоча б одна помилка. Якщо Ви її виправили, то в цій програмі все одно є хоча б одна помилка…”. Про радянську школу створення ЕОМ та програмування, оскільки торкнулися цієї теми, ми розповімо трохи пізніше.

Система з розділенням часу припускала підключення до одного головного процесора (mainframe)кількох терміналів з алфавітно-цифровою клавіатурою. Спеціальні програми дозволяли процесору по черзі підключатися до кожного терміналу, виконуючи при цьому невелику частину кожного завдання протягом певного періоду (або кванта) часу (зазвичай мілісекунди). Оскільки процесор обробляв інформацію з дуже великою швидкістю, у кожного програміста створювалося враження, що машина працює тільки з ним одним. Насправді програмісти розділяли між собою час роботи комп’ютера.

Наступна їхня ідея полягала у створенні мови програмування, що складається з простих слів природної мови. За словами Кемені, вони хотіли зробити мову настільки простою, щоб студенти могли використовувати її вже після трьох годин навчань.