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

6.3. Алфавітне хрещення

У роки дебюту мови Пролог з’явилася ще одна мова – С. Вона народилася у “Белл телефон лабораториз” (науково-дослідній фірмі, яка належала корпорації “Амерікан телефон энд телеграф”, що розташована у Мюррей-хил, шт. Нью-Джерсі). Ніхто з керівників не замовляв нової мови. Мова С виникла лише як результат дружнього змагання всередині невеликої групи програмістів лабораторії. Не було ані проектів, ані специфікацій, ані вимог, все народилося просто без обговорень. Назва “Сі” (С) з’явилася також випадково, як і сама мова. Вона виявилася наступником раніше створеної мови для внутрішнього використання, що отримала назву Бі (В, С – друга і третя букви латинського алфавіту). Розробником мовиВ був Кенет (Кен) Томпсон, який брав участь ще раніше у розробці проекту Multics.

Мову С розробив у 1972 р. Денніс Річи, 31-річний фахівець з системного програмування, який, отримавши ступінь бакалавра з прикладної математики у Гарвардському університеті, поступив у 1968 р. на службу в лабораторію. Він наділив мову В додатковими можливостями, а також змінив синтаксис для полегшення роботи з нею.

Річи сподівався, що його нова мова стане у нагоді для програмування нової операційної системи “Юнікс” (UNIX), робота над якою також не входила в офіційні плани компанії. Автор системи “Юнікс”Кен Томпсон вважався серед колег кращим програмістом у світі. Заради підвищення швидкості роботи операційної системи вони традиційно писалися на мові низького рівня – Асемблері, але мова С настільки добре зарекомендувала себе, що, на ній Томпсон впродовж 70-х років продовжував розробляти UNIX. Так, на С було написано більше 90% всього кодуцентральної програми (ядра)системи “Юнікс”.

Після того, як ця ОС була завершена, про мову С заговорили знов у 1980 році завдяки комп’ютеру Belle. Цей комп’ютер, який виграв світову першість з шахів серед комп’ютерів, був розроблений Томпсоном та Джо Кондоном. Томпсон продовжував працювати у компанії Bell Labs до пенсії, на яку вийшов у 2000 році. Річи дотепер працює у компанії Bell Labs і продовжує свою діяльність над розробкою операційних систем.

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

«Чистий» С дотепер дуже широко використовується системними програмістами для створення додатків, що порівнюються за своєю ефективністю з програмами, які реалізовані на мові Асемблер, проте дійсну славу цій витонченій та компактній мові принесли об’єктно-орієнтовані нащадки C++, Java та C#.

Еволюційний розвиток мови С перетворив її на принципово могутніший інструмент, ніж первинна версія. Влітку 1983 р. програміст Ріки Масситті запропонував нову версію мови – С++. Назва вказує на еволюційну природу мови (++ – це операція приросту в Сі). Втілив ідею у життя інший співробітник Bell Labs Бьярн Страуструп (Stroustrup, Bjarne; 1950 р.н.). На основі синтаксису С він розробив універсальну об’єктно-орієнтовану мову програмування C++. Вона є розширенням мови Сі, тому програми, які написані на Сі, можуть оброблятися компіляторами C++.

Мова програмування С була збережена як підмножина, тому зробленого у С акценту на засоби низького рівня достатньо, щоб вирішувати найнасущніші завдання системного програмування. Іншим джерелом нової версії слугувала мова Simula-67, з якої була запозичена концепція класу (разом з похідними класами та функціями-членами). Це було зроблено, щоб сприяти модульності завдяки використанню віртуальних функцій.

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

До кінця XX століття мова С++ стала стандартною мовою професійного програмування. А на самому початку нового XXI століття з’явився ще один наступник С під назвою C# (читається «сі шарп»; музичний знак дієза натякає на підвищення можливостей базової мови). Мова C# була запропонована фірмою Microsoft як зброя у конкурентній боротьбі проти переможної ходи мови Java, про яку йтиметься нижче.

За словами розробників, мова С# увібрала в себе все краще з таких популярних мов як С++, Visual Basic, Java та Object Pascal. Вона забезпечує швидку розробку і у той же час дозволяє створювати ефективний код. Більш того, фірма заявила, що C# – перша мова, в якій реалізована принципово нова концепція компонентного програмування, де програмною одиницею стає не об’єкт, а компонент, що є готовим додатком, який поширюється по комп’ютерній мережі. Питання про те, чи дійсно компонентне програмування є зміною парадигми, або це – деяка еволюція об’єктного програмування, є дискусійним. Відповідь на це дасть час.