Структурний підхід

 

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

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

Ніде криза не переживалася так гостро, як у військовому відомстві США, найбільішому споживачеві комп’ютерів та програм. Тому у 1973 р. Пентагон виділив близько половини з 7.5 млрд. доларів свого комп’ютерного бюджету на розвиток та супровід програмного забезпечення. Асигнування на апаратне забезпечення комп’ютерів, навпаки, було зменшене, не дивлячись на суттєве збільшення потужності та пам’яті комп’ютерів.

Значною мірою проблема породжувалася неймовірною мішаниною мов, на яких писалися програми особливо для вбудованих систем крихітних комп’ютерів (мікропроцесорів) балістичних ракет або для великих за розміром комп’ютерів, що передавали сигнали на кораблі або літаки. Як випливає з оглядів [2], на початку 70-х років існувало близько 450 мов високого рівня та їхніх діалектів, що використовували для кодування таких програм. А якщо врахувати мови Асемблера, то ця цифра доходила до 1.5 тис. Багато мов були розроблені лише для конкретних робіт, оскільки жодна їз універсальних мов програмування не містила засобів, які були необхідні при вирішенні конкретної задачі.

Практично всі основні концепції – процедурне, логічне, об’єктно-орієнтоване програмування були запропоновані у це бурхливе десятиліття. У наступні роки прогрес в автоматизації програмування йшов не у бік створення нових мов, а, навпаки, шляхом природного відбору. Мови програмування народжувалися та вмирали, але тільки деякі з них – найбільш стійкі та життєздатні – дожили до кінця XX століття і стали стандартними у міжнародному співтоваристві програмістів.

У січні 1975 р. Пентагон вирішив навести лад в “лінгвістичному хаосі”. Він заснував великий комітет HOLWG (High Order Language Working Group) – робочу групу з мови високого рівня, до якої увійшли представники всіх родів військ США, а також трьох союзників США по НАТО (Франція, Західна Німеччина, Великобританія). Комітету було доручено знайти або розробити мову, яка була б придатна для програмування всіх відомих вбудованих систем.

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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









Дата добавления: 2015-09-28; просмотров: 692;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.