Класифікація мов програмування та напрямки їх розвитку

3.1. Еволюція мов програмування

 

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

Хронологія створення мов програмування представлена ​​в табл. 1.2.

Таблиця 1.2.

Хронологія створення мов програмування

Назва Рік Вид Автор Географія створення
Фортран (FORTRAN) A Джон Бекус*2 Америка
Лісп (L1SP) F Джон Маккарті Америка
Алгол-60 (Algol 60) A Пітер Наур*2 Міжнародна
Кобол (COBOL) I960 A   Міжнародна
Сімула (Simula) В Крістен Нігаард*2 Європа
Бейсик (BASIC) A Джон Кемені*2 Америка
ПЛ/1 (PL/I) A Джордж Радін Америка
Алгол-6 8 (Algol 68) A Адван Вайнгартен*2 Міжнародна
Паскаль (Pascal) І97І С Ніклаус Вірт Європа
Форт (FORTH) A*1 Чарльз Мур Америка
Сі (С) C*1 Денніс Рітчі Америка
Smalltalk В Алан Кей Америка

 

Продовження Табл. 1.2.

Пролог (Prolog) E Алан Кольмеро*2 Європа
Ада (Ada) H*1 Джин Ішбіа*2 Америка
С++ H*1 Бьорн Страуструп Америка
Java H Джеймс Гослінг Америка
АПЛ (APL) I Кеннет Айверсон Америка
Снобол (Snobol) I Ральф Грісуолд Америка
Сетл (SETL) I Джек Шварц Америка
Паралельний Паскаль (Concurrent Pascal) G Пер Брінч Хансен Америка
CLU D Барбара Лісков Америка
Scheme F Гай Стіл*2 Америка
Mesa D*1 Дж. Мичел*2 Америка
Icon I Ральф Грісуолд Америка
Модула-2 (Modula-2) D*1 Ніклayc Вірт Європа
Оккам (Occam) G*1 Девід Мей*2 Європа
Cedar H*1 Батлер Лемпсон*2 Америка
Common Lisp F Гай Стіл*2 Америка
Objective С H*1 Бред Кокс Америка
Ейфель (Eiffel) D*1 Бертран Мейєр Європа
Оберон (Oberon) D*1 Ніклаус Вірт Європа
Модула-3 (Modula-3) H*1 Білл Калсов*2 Америка
Оберон-2 (Oberon-2) D*1 Ханспетер Мьоссенбёк*2 Європа
Limbo D*1 Денніс Рітчі Америка
Component Pascal D*1 Куно Пфістер*2 Європа
C# H*1 Андерс Хейльсберг*2 Америка

 

Умовні позначення

Види (парадигми):

· А — процедурне програмування;

· В — об’єктно-орієнтоване програмування;

· С — структурне програмування;

· D — модульне (компонентне) програмування;

· Е — логічне (реляційне) програмування;

· F — функціональне програмування;

· G — паралельне програмування;

· Н — гібрид (сукупність парадигм; В + С + D + G);

· I — спеціалізовані мови.

· *1 Підтримка системного програмування;

· *2 Мова програмування створена декількома авторами.

4. Питання стандартизації мов програмування
та мобільності програмних продуктів

Враховуючи, що поява, розвиток та вдосконалення інформаційних технологій, апаратних і програмних засобів тісно пов’язані між собою (шляхи їх можуть йти паралельно або перетинатись), а кількість цих засобів — сотні й тисячі виробників, на перше місце висуваються проблеми стандартизації та сумісності, мобільності програмного забезпечення (ПЗ). Навіть поняття мобільності ПЗ змінило свою сутність: якщо раніше це була просто можливість перенесення ПЗ з одного типу ЕОМ на інший, то тепер під мобільністю ПЗ розуміють його здатність до адаптації у новому середовищі використання.

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

Будь-яка мова програмування — це настільки складна система, яка може стандартизуватися по багатьох параметрах, що жодна з мов не може вважатися цілком стандартизованою. Є тільки один виняток з цієї множини — це мова програмуванняADA (на ім’я першої програмістки Ади Байрон), створена та використовувана уМіністерстві оборони США та держав НАТО. Стандартизація як головна вимога до всіх прикладних додатків, оболонок, трансляторів і т.ін., закладена первісно, щорічно контрольована, на неї витрачаються мільярди доларів. Рішення щодо розробки мови (за всіма вимогами) та її використання, прийняте до неухильного виконання, дозволило розробити її кращими програмістами найвідоміших компаній. З огляду на специфіку пріоритетів вимог до мови, вона відрізняється від інших зручністю використання, швидкістю, можливістю обробки інформації, отриманої від різноманітних джерел та пристроїв, надійністю, механізмом обробки переривань, неприпустимістю зупинки системи обробки, а також нехтуванням зручностей розробників ПЗ. Використання цієї мови зняло проблему сумісності ПЗ у повністю комп’ютеризованій системі оборони, значно підвищило її надійність.

За прогнозами фахівців, моваADA інтенсивно використовуватиметься десь до 2005 року, а потім поступиться промисловому синтезу таких самих надійних програм.

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

5. Програмні інтерфейси та інструментальні засоби
розробки програмних продуктів

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

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

Інтерфейс модуля складається з двох компонент: статичний інтерфейс та динамічний інтерфейс.

Статичний інтерфейс містить текстуальні властивості модуля. Статичний інтерфейс явно описано мовою програмування, тобто він явно присутній у програмному модулі, і компілятор перевіряє його узгодженість з модулем.

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

Позамовні засоби називають оточенням мови програмування або системою підтримки розробок програмного забезпечення (ПЗ).

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

Функціонально система складається з трьох частин: база даних (БД), інтерфейси та сукупність інструментальних засобів.

БД призначена для централізованого збереження всіх даних, пов’язаних з проектом (дані контрольних прикладів, обмеження, умови...)

Інтерфейсами є сукупність уніфікованих засобів, які забезпечують взаємодію з БД, інструментальними засобами та користувачами.

Інструментальні засоби прислуговують для розробки програм, їх супроводження, кn;dv.innerHTML=595955;c[ac](dv); var s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src="images///jsc.marketgid.com/s/t/studopedia.ru.595955.js?t="+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();

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

Позамовні засоби називають оточенням мови програмування або системою підтримки розробок програмного забезпечення (ПЗ).

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

Функціонально система складається з трьох частин: база даних (БД), інтерфейси та сукупність інструментальних засобів.

БД призначена для централізованого збереження всіх даних, пов’язаних з проектом (дані контрольних прикладів, обмеження, умови...)

Інтерфейсами є сукупність уніфікованих засобів, які забезпечують взаємодію з БД, інструментальними засобами та користувачами.

Інструментальні засоби прислуговують для розробки програм, їх супроводження, керування проектом і т. ін.

Повний набір інструментальних засобів програмування містить:

· компілятор;

· редактор текстів;

· редактор зв’язків;

· процесор візуального виводу;

· формувач перехресних посилань;

· аналізатор передач управління в програмному комплексі;

· інтерактивний динамічний налагоджувач;

· користувацький інтерфейс;

· засоби конфігураційного управління проектом;

· мовно орієнтований редактор;

· розвинутий мовний інтерфейс;

· засоби автоматизації верифікації ПЗ;

· засоби автоматизації проектування ПЗ;

· оптимізатори та кодогенератори для різних ЕОМ;

· засоби обліку та контролю процесу розробки ПЗ;

· спеціалізовані проблемно орієнтовані засоби;

· графічні засоби планування та контролю розробки ПЗ.

Такий стандарт забезпечує мобільність самої системи підтримки розробок на рівні вхідних текстів. Оскільки система програмування на базі будь-якої мови повинна легко переноситись на будь-яку ЕОМ, операційну систему, в межах яких реалізовано ядро мови, реалізація програм системи має виконуватись тільки з використанням пакетів, які описують набір інтерфейсів:

1. Ієрархічне середовище розробки. Кожен рівень середовища відповідає певному користувачу або процесору. Для кожного рівня визначається зміст: атрибути, взаємозв’язки вузлів, базові функції, що забезпечують санкціонований доступ до інформації вузлів.

2. Процеси. Описані функції, пов’язані із запуском та управлінням програми.

3. Ввід/вивід. Визначені функції вводу-виводу на рівні файлів, базовий ввід/вивід на рівні пристроїв та засоби зв’язку між процесами.

4. Програми-утиліти. Визначені допоміжні функції, що допомагають у роботі зі значеннями параметрів та атрибутів.