2.1. Поневіряння пакетної обробки
Оскільки комп’ютери на початку 50-х років були нечисленні і страшенно дорогі, то й безпосередній доступ до них вкрай обмежувався. Програмістові треба було підготувати завдання на перфокартах та передати його в обчислювальний центр операторові. Цей посередник вводив карти у машину великим пакетом з іншими програмами.
Потім починалося очікування. Щонайменшої описки, наприклад, пропуск дужки, було достатньо, щоб машина припинила виконання програми. Виправивши відповідний рядок програми, програміст вимушений був знову чекати своєї черги. Навіть дуже хороші програмісти часто витрачали тижні на пошук та виправлення всіх помилок у програмі. Проте проблеми не обмежувалися лише незручністю пакетної обробки. Програмування на асемблері по суті мало у чому відрізнялося від програмування у двійковому коді. Якщо програма поводилася “дивно”, то єдиним способом пошуку помилки було вивчення так званогодампу пам’яті – довгої паперової роздруківки, що містить таємничі числові коди.
На початку 60-х років молоді математики Дартмутського коледжу (США) Кемені(за походженням угорець) таКурц висунули ідею: навчати азам програмування всіх студентів незалежно від їх спеціалізації, будь то природничі або гуманітарні науки. На відміну від своїх колег з інших навчальних закладів, яких цілком влаштовувала методика навчання студентів шляхом читання лекцій, вони хотіли, щоб студенти опановували комп’ютер, створюючи для нього реальні програми. Але спочатку необхідно було подолати деякі перешкоди. Перш за все – машина в коледжі була всього одна. Спочатку вони почали шукати, чим замінити пакетний режим, і вирішили використовуватисистему розділення часу CTSS(Compatible Time Sharing System – Сумісна система розділення часу), яка була вперше запропонована в Массачусетському технологічному інституті (МТІ) у 1959 р. чудовим та різностороннім математикомДжоном Маккарті.
Одному з авторів пощастило слухати доповідь Д. Маккарті на 2-ій Всесоюзній Конференції Програмістів, що проходила у 1970 р. у м. Новосибірськ. На все життя запам’ятався його вислів (постулат програміста), який був надрукований величезними літерами на довгій паперовій стрічці за допомогою АЦПУ (Алфавитно Цифровое Печатающее Устройство) на наймогутнішому на той час комп’ютері БЭСМ-6(Большая Электронная Счетная Машина – серія вітчизняних ЕОМ, що були створені під керівництвом радянського вченого – академіка Сергія Олексійовича Лебедева):“У кожній “готовій”, ретельно відлагодженій програмі є хоча б одна помилка. Якщо Ви її виправили, то в цій програмі все одно є хоча б одна помилка…”. Про радянську школу створення ЕОМ та програмування, оскільки торкнулися цієї теми, ми розповімо трохи пізніше.
Система з розділенням часу припускала підключення до одного головного процесора (mainframe)кількох терміналів з алфавітно-цифровою клавіатурою. Спеціальні програми дозволяли процесору по черзі підключатися до кожного терміналу, виконуючи при цьому невелику частину кожного завдання протягом певного періоду (або кванта) часу (зазвичай мілісекунди). Оскільки процесор обробляв інформацію з дуже великою швидкістю, у кожного програміста створювалося враження, що машина працює тільки з ним одним. Насправді програмісти розділяли між собою час роботи комп’ютера.
Наступна їхня ідея полягала у створенні мови програмування, що складається з простих слів природної мови. За словами Кемені, вони хотіли зробити мову настільки простою, щоб студенти могли використовувати її вже після трьох годин навчань.
- Міністерство освіти і науки україни
- 9.12. Огляд WinDev 154
- 10. Історія операційних систем 169
- Список літератури 187
- Передмова
- 1. Передвісники комп’ютерної ери
- 1.1. Комп’ютерна програма–що це?
- 1.2. Доелектронна історія обчислювальної техніки
- Логарифмічна лінійка
- 1.3. Можливості двійкового коду
- 1.4. Розвиток двійкової системи
- 1.5. Винахід перших комп’ютерів
- Перша в історії працююча програмнокерована універсальна обчислювальна машина z-3 (1941 р.)
- 1.6. Гарвардська архітектура
- 1.7. Архітектура фон Неймана
- 1.8. Створення зрозумілих людині кодів
- 1.9. Крок на благо програмування
- 1.10. Можливості програмного управління
- 2. Нові мови програмування
- 2.1. Поневіряння пакетної обробки
- 2.2. Універсальна мова програмування
- 2.3. Усунення неоднозначності
- 2.4. Заклик до дотримання математичної строгості
- 2.5. Пошук та усунення помилок
- 2.6. Нелегке мистецтво програмування
- 2.7. Обчислювальна техніка та програмування в срср
- 3. Розквіт та хаос програмного забезпечення
- 3.1. Місце народження хакерів
- 3.2. Два чародії програмування
- 3.3. Перші промислові стандарти
- 3.4. Дружній інтерфейс
- 3.5. Прообраз сучасного «ноутбука»
- 4. Болісний шлях розвитку програмування
- 4.1. Плануюче обчислення
- 4.2. Внесок Великої Британії
- 4.3. Програмування англійською мовою
- 5. Три комерційні гіганти
- 5.1. Перша комерційна мова програмування
- 5.2. Обчислювальна техніка приходить у бізнес
- 5.3. Народження codasyl
- 5.4. Конференція в Цюріху
- 5.5. На шляху до сумісності комп’ютерів
- 5.6. Розбіжності Нового Світу
- 6. Десятиліття динамічного розвитку
- 6.1. Перші кроки непроцедурної мови
- 6.3. Алфавітне хрещення
- 6.4. Успіх та суперечки
- 6.5. Інженерний підхід
- 6.6. Структурний підхід
- 6.7. Поява мови “Ада”
- 7. Програмування приходить у наші домівки
- 7.1. Розквіт Бейсіка
- 7.2. Поява мови Модула-2
- 7.3. Музикальний француз
- 7.4.Довгожитель Lisp – інструмент функціонального програмування
- 7.5. Prolog – нездійснена мрія еом V покоління
- 7.6. Революція на ім’я Java
- 8. Історія і шляхи розвитку супер-еом
- 8.1. Усе починалося з менфреймов
- 8.2. Напрями розвитку обчислювальної техніки
- 8.3. Розвиток елементної бази. Закон Мура
- 8.4. Вдосконалення архітектури
- Звичайна послідовн обробка
- Конвеєрна обробка
- 9. Сучасний стан та перспективи розвитку програмування
- 9.1. Криза у програмуванні
- 9.2. Методологія процедурно-орієнтованогопрограмування
- 9.3. Методологія об’єктно-орієнтованогопрограмування
- 9.4. Методологія об’єктно-орієнтованогоаналізу та проектування
- 9.5. Технології програмування
- 9.6. Case –засоби
- 9.7. Методологія rad
- 9.11.1. Знайомство с LightSwitch
- 9.11.2. Архитектура LightSwitch
- 9.11.3. Створення проекту в Microsoft Visual Studio LightSwitch
- 9.11.4. Дванадцять основних переваг LightSwitch
- 9.12. Огляд WinDev
- 9.12.1. ПризначенняWinDev
- 9.12.2. Деякі характеристики wLanguage
- 9.13. Технологія model checking
- 9.14. NeoBook – программирование для непрограммистов
- 9.14.1. Введення для секретарок
- 9.14.3. Можливості та області застосування
- 9.15. Файлові системи найближчого майбутнього
- 9.15.1. Зетта-повінь настає
- 9.15.2. Файлова система zfs
- 9.15.3. Файлова системаBtrfs
- 9.15.4. Файлова системаHammer
- 10. Історія операційних систем
- 10.1. Послідовна обробка даних
- 10.2. Прості пакетні системи
- 10.3. Багатозадачні пакетні системи
- 10.4. Системи з режимом розподілу часу
- 10.5. Основні досягнення
- 10.6. Сучасні системи unix
- 10.7. Os/2. Битва двох гігантів
- Список літератури