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# – перша мова, в якій реалізована принципово нова концепція компонентного програмування, де програмною одиницею стає не об’єкт, а компонент, що є готовим додатком, який поширюється по комп’ютерній мережі. Питання про те, чи дійсно компонентне програмування є зміною парадигми, або це – деяка еволюція об’єктного програмування, є дискусійним. Відповідь на це дасть час.
- Міністерство освіти і науки україни
- 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. Битва двох гігантів
- Список літератури