6.7. Поява мови “Ада”
Головою комітету та основним натхненником у розробці програм був призначений підполковник ВПС Уїльям Уайтекер. Уайтекер досяг найвищих академічних ступенів за всю історію льотної школи, але керувати літаком так і не навчився. Проте, він залишився у ВПС і за 16 років роботи над ядерною зброєю став висококваліфікованим програмістом.
Замість того, щоб займатися нескінченними дебатами (як це було раніше в інших комітетах), а потім ухвалювати рішення про мову, комітет (за наполяганням Уайтекера) почав збирати побажання користувачів комп’ютерів як серед військових, так і серед інших фахівців з програмування.
Їх попросили допомогти у формулюванні необхідних вимог до універсальної мови. Завдання вироблення проекту загальних специфікацій було покладене на Девіда Фішера – цивільного співробітника Інституту оборонних досліджень США. Фішер вніс у цю роботу власний солідний теоретичний та практичний багаж. Він закінчив два університети і свого часу розробляв військове програмне забезпечення у фірмі “Барроуз”.
У квітні 1975 р., через три місяці після утворення комітету HOLWG, перший проект вимог до універсальної мови був переданий для ознайомлення військовим, у промислові та академічні кола під кодовою назвою “Солом’яний”. Вибір назви був не випадковий: Фішер і Уайтекер розраховували, що рецензенти як слід пошарпають документ і запропонують свої покращення.
“Биття” не змусило себе довго чекати, і з урахуванням критичних зауважень “Солом’яний” був переглянутий. Цикл рецензування та переробки протягом подальших трьох років повторювався ще п’ять разів. Кожен подальший документ отримував назву, яка начебто відзначала прогрес у зміцненні вимог: “Дерев’яний”, “Олов’яний”, “Залізний”, “Переглянутий залізний” і, нарешті – “Сталевий”.
Список вимог подовжився, досягнувши приблизно сотні на етапі “Олов’яного”, що жодна з існуючих мов задовольнити їм не може. Комітет вирішив, що вимоги можна задовольнити, тільки створивши абсолютно нову мову.
У травні 1977 р. комітет запитав пропозиції у найвідоміших проектувальників мов з різних країн, причому пропозиції повинні були базуватися на одній з трьох мов: Пл/1, Алгол-68 та Паскаль.
Було відібрано чотири пропозиції (всі засновано на Паскалі) для доопрацювання протягом 6-місячного етапу. Всі команди розробників отримали закодовані колірні імена, щоб зберегти анонімність при рецензуванні.
У 1978 р. на основі оцінок більше 400 рецензентів два з чотирьох проектів (Червоний – компанія “Інтерметрікс” (Каліфорнія) та Зелений – “Сі Хоннуелл Буль” (паризька філія американської компанії “Хоннуелл корпорейшн”)) були відібрані для остаточного розгляду.
Переможця оголосили у травні 1979 р. Ним виявилася фірма “Сі Хоннуелл Буль”. Мова, що перемогла, а мова була охрещена Адою, на честьАвгусти Ади Байрон (графині Лавлейс), математика та письменниці 19 ст., яку називають першим у світі програмістом – за популярний опис Аналітичної машини Чарльза Беббіджа та цикл програм для цієї машини.
Ця перемога була особистим тріумфом Жана Іхбіа, який очолював групу “Зеленого” проекту. Іхбіа народився у Парижі, навчався в престижній Політехнічній школі, володар “коричневого поясу” з дзюдо. Пізніше був направлений на навчання у США. Незабаром після захисту кандидатської дисертації з розміщення систем метро поступив на службу у нову французьку компанію “Сі” (пізніше – “Сі Хоннуелл Буль”), де і захопився програмуванням. Результатом роботи групи була мова, яка була розроблена не комітетом, а невеликою групою (10 осіб) з сильним лідером.
Найхарактерніша риса мови Ада – головний акцент на структурне програмування. Мова дозволяє писати програми у вигляді пакетів, тобто самостійнихмодулів, які розробляються окремими програмістами, а потім збираються разом. Пакет може бути розроблений, відлагоджений, протестований та збережений у бібліотеці модулів для подальшого використання у програмі, начебто це була частина стандартного програмного забезпечення. Така модульна схема дозволила створювати надійні, легкі для читаня та зручні у супроводі програми.
Проте “шанувальники” Ади припускали, що за всі названі переваги доведеться платити. Оскільки цей проект створювався відповідно до урядового документа ”Сталевий”, у ньому виявилося багато особливостей, що ускладнюють його вивчення. Крім того, компілятор Ади займав набагато більший об’єм пам’яті, ніж компілятор її попередника, Паскаля.
Розміри та складність мови Ада викликали критику фахівців, зокрема автора Паскаля Н. Вірта та його колеги К. Хоара, які брали участь у групі “СРІ Інтернешил”, яка вибула із змагання у півфіналі.
Зокрема, Вірт казав: “Дуже багато всього вивалюється на програміста. Я не думаю, що, вивчивши третину мови Ади, можна нормально працювати. Якщо не засвоїти всіх деталей мови, то надалі можна спіткнутися об них і це призведе до неприємних наслідків”.
Захищаючи свою мову, головний “архітектор” Ади Жан Іхбіа, заперечивши Вірту своє “захоплення і пошану”, додав: “Іноді Вірт вірить в малі вирішення великих проблем. Я не вірю в такі міражі. Крупні проблеми вимагають крупних рішень”.
Як і слід було чекати, створення компілятора, що дозволяв ефективно виконувати програми на Аді, виявилося нелегким завданням. Воно посилювалося вимогами Пентагону, щоб нова мова не засмічувалася діалектами, розширеннями або підмножинами. Пентагон вимагав також, щоб кожен пропонований компілятор піддавався строгій процедурі перевірки, яка складалася з серії (близько 2000) спеціальних тестів.
Не дивлячись на всі труднощі, вдалі компілятори врешті-решт з’явилися, і Ада почала заявляти про себе. У 1983 р. міністерство оборони США розпорядилося, щоб усі нові програми для “критичних” додатків писалися тільки на Аді. Під “критичними” розумілися комп’ютеризовані системи зв’язку та системи озброєнь. Пентагон передбачив, що до кінця десятиліття 85% нового “критичного” програмного забезпечення (вартістю 5 млрд. дол.) буде написано на Аді.
Таким чином, Ада у 1980 р. впритул підійшла до гарантованої мобільності: програму, яка була написана для одного комп’ютера, майже напевно можна було перекомпілювати та правильно виконати на іншій машині. Одне це робить Аду важливим програмним засобом при розробці великих проектів.
- Міністерство освіти і науки україни
- 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. Битва двох гігантів
- Список літератури