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

6.7. Поява мови “Ада”

Головою комітету та основним натхненником у розробці програм був призначений підполковник ВПС Уїльям Уайтекер. Уайтекер досяг найвищих академічних ступенів за всю історію льотної школи, але керувати літаком так і не навчився. Проте, він залишився у ВПС і за 16 років роботи над ядерною зброєю став висококваліфікованим програмістом.

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

Їх попросили допомогти у формулюванні необхідних вимог до універсальної мови. Завдання вироблення проекту загальних специфікацій було покладене на Девіда Фішера – цивільного співробітника Інституту оборонних досліджень США. Фішер вніс у цю роботу власний солідний теоретичний та практичний багаж. Він закінчив два університети і свого часу розробляв військове програмне забезпечення у фірмі “Барроуз”.

У квітні 1975 р., через три місяці після утворення комітету HOLWG, перший проект вимог до універсальної мови був переданий для ознайомлення військовим, у промислові та академічні кола під кодовою назвою “Солом’яний”. Вибір назви був не випадковий: Фішер і Уайтекер розраховували, що рецензенти як слід пошарпають документ і запропонують свої покращення.

“Биття” не змусило себе довго чекати, і з урахуванням критичних зауважень “Солом’яний” був переглянутий. Цикл рецензування та переробки протягом подальших трьох років повторювався ще п’ять разів. Кожен подальший документ отримував назву, яка начебто відзначала прогрес у зміцненні вимог: “Дерев’яний”, “Олов’яний”, “Залізний”, “Переглянутий залізний” і, нарешті – “Сталевий”.

Список вимог подовжився, досягнувши приблизно сотні на етапі “Олов’яного”, що жодна з існуючих мов задовольнити їм не може. Комітет вирішив, що вимоги можна задовольнити, тільки створивши абсолютно нову мову.

У травні 1977 р. комітет запитав пропозиції у найвідоміших проектувальників мов з різних країн, причому пропозиції повинні були базуватися на одній з трьох мов: Пл/1, Алгол-68 та Паскаль.

Було відібрано чотири пропозиції (всі засновано на Паскалі) для доопрацювання протягом 6-місячного етапу. Всі команди розробників отримали закодовані колірні імена, щоб зберегти анонімність при рецензуванні.

У 1978 р. на основі оцінок більше 400 рецензентів два з чотирьох проектів (Червоний – компанія “Інтерметрікс” (Каліфорнія) та Зелений – “Сі Хоннуелл Буль” (паризька філія американської компанії “Хоннуелл корпорейшн”)) були відібрані для остаточного розгляду.

Переможця оголосили у травні 1979 р. Ним виявилася фірма “Сі Хоннуелл Буль”. Мова, що перемогла, а мова була охрещена Адою, на честьАвгусти Ади Байрон (графині Лавлейс), математика та письменниці 19 ст., яку називають першим у світі програмістом – за популярний опис Аналітичної машини Чарльза Беббіджа та цикл програм для цієї машини.

Ця перемога була особистим тріумфом Жана Іхбіа, який очолював групу “Зеленого” проекту. Іхбіа народився у Парижі, навчався в престижній Політехнічній школі, володар “коричневого поясу” з дзюдо. Пізніше був направлений на навчання у США. Незабаром після захисту кандидатської дисертації з розміщення систем метро поступив на службу у нову французьку компанію “Сі” (пізніше – “Сі Хоннуелл Буль”), де і захопився програмуванням. Результатом роботи групи була мова, яка була розроблена не комітетом, а невеликою групою (10 осіб) з сильним лідером.

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

Проте “шанувальники” Ади припускали, що за всі названі переваги доведеться платити. Оскільки цей проект створювався відповідно до урядового документа ”Сталевий”, у ньому виявилося багато особливостей, що ускладнюють його вивчення. Крім того, компілятор Ади займав набагато більший об’єм пам’яті, ніж компілятор її попередника, Паскаля.

Розміри та складність мови Ада викликали критику фахівців, зокрема автора Паскаля Н. Вірта та його колеги К. Хоара, які брали участь у групі “СРІ Інтернешил”, яка вибула із змагання у півфіналі.

Зокрема, Вірт казав: “Дуже багато всього вивалюється на програміста. Я не думаю, що, вивчивши третину мови Ади, можна нормально працювати. Якщо не засвоїти всіх деталей мови, то надалі можна спіткнутися об них і це призведе до неприємних наслідків”.

Захищаючи свою мову, головний “архітектор” Ади Жан Іхбіа, заперечивши Вірту своє “захоплення і пошану”, додав: “Іноді Вірт вірить в малі вирішення великих проблем. Я не вірю в такі міражі. Крупні проблеми вимагають крупних рішень”.

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

Не дивлячись на всі труднощі, вдалі компілятори врешті-решт з’явилися, і Ада почала заявляти про себе. У 1983 р. міністерство оборони США розпорядилося, щоб усі нові програми для “критичних” додатків писалися тільки на Аді. Під “критичними” розумілися комп’ютеризовані системи зв’язку та системи озброєнь. Пентагон передбачив, що до кінця десятиліття 85% нового “критичного” програмного забезпечення (вартістю 5 млрд. дол.) буде написано на Аді.

Таким чином, Ада у 1980 р. впритул підійшла до гарантованої мобільності: програму, яка була написана для одного комп’ютера, майже напевно можна було перекомпілювати та правильно виконати на іншій машині. Одне це робить Аду важливим програмним засобом при розробці великих проектів.