Алгоритмічна мова
АЛГОРИТМІ́ЧНА МО́ВА — формальна мова, призначена для записування алгоритмів за заданими правилами конструювання. Хоч для кожної А. м. такі правила досить різноманітні і якісно відмінні, будь-який алгоритм можна скласти з невеликого числа елементар. приписів, що задають послідовність кроків алгоритму. А. м. називається універсальною, якщо нею для довіл. алгоритму можна описати алгоритмічно повний набір приписів. За узагальненістю способу записування алгоритмів універс. А. м. рівносильна алгоритм. системі, напр., класич. алгоритм. системам: нормал. алгоритмам Маркова, рекурсив. функціям, машинам Тьюрінґа чи Поста. А. м. визначається алфавітом вхід. символів, точним описом синтаксису (граматики) і семантики. Оператори А. м. переробляють інформацію і можуть складатися з послідовності елементар. операцій, а оператори управління (переходу) визначають порядок виконання операторів у алгоритмі. Незважаючи на універс. А. м., вони виявилися непридат. щодо розв’язання практ. задач на комп’ютерах, оскільки не враховували умов операц. середовищ, а орієнтувалися на дослідження фундам. питань теорії алгоритмів. Напр., у мові АЛГОЛ-60 (1960) для записування алгоритмів були відсутні навіть оператори вводу-виводу. Тому на основі А. м. виникли мови програмування (М. п.) як формальні мови спілкування людини з комп’ютером, признач. для опису сукупності інструкцій, виконання яких забезпечує правильне розв’язання потріб. задачі. Першими М. п. були мови машинні, адекватні системам команд комп’ютера, що безпосередньо ним реалізуються (напр., як асемблер), однак вимагають суттєвої деталізації розв’язування задачі. Тому з’явилися М. п. з вищим рівнем абстракції, орієнтовані на певні предметні сфери і здатні лаконічно виразити алгоритм розв’язання задачі: у 1958 — Фортран для вирішення інж. і наук. задач; у 1959 — Кобол для задач оброблення екон. інформації. Зазначимо багатоцільову Адресну мову, яку розробили у 1956 київ. математики В. Королюк і К. Ющенко: завдяки апаратові непрямої адресації вона випередила появу не тільки М. п. вищого рівня, а й асемблерів. Цей апарат закріпився у М. п. для систем. програмування, тільки починаючи з М. п. ПЛ/1 (1966). Підручник з Адресної мови перевид. у п’яти країнах світу, її реалізовано на всіх вітчизн. комп’ютерах першого покоління. Залежно від підходу до описування задачі, М. п. поділяють на процедурні, за допомогою яких детально визначається, як повинен діяти комп’ютер, та проблемно-орієнтовані, або функціон., які визначають у термінах функцій, що необхідно зробити. Процедурні мови містять засоби вираження таких характер. дій, як обчислення виразів, перевірка умов, оброблення текстових рядків, організація циклів обчислень, виклик процедур тощо. Проблемно-орієнт. мови надають засоби визначення наборів функцій, що повинні виконуватися. За 40 р. розвитку відомо понад 1000 М. п., серед яких поширилися і розвиваються далі всього півтора десятка, зафіксовані в міжнар. і нац. стандартах. Необхідність стандартизації М. п. з’ясувалася ще наприкінці першого десятиліття їхньої появи. З процедурних нині стандартизовані і мають по декілька поколінь М. п. для інж. застосувань Фортран, Бейсік і ФОРТ; для оброблення даних — Кобол; для структур. запитів до реляц. баз даних — SQL; для розмітки документів — SGML; для упр. реальними об’єктами — Ада і Модула-2; для оброблення матриць — APL; для оброблення мед. даних — M[UMPS]; для оброблення списків — Коммон Лисп, Пролог із вбудованим механізмом логіч. виведення; для розробки застосувань ПЛ/1, Паскаль, Сі та С++. Життєвий цикл М. п. Фортран нараховує вже 6 поколінь, починаючи від Фортран-2 у 1958 і першого стандарту на Фортран-4 у 1966. Потім діяли стандарти на Фортран-77 та Фортран-90, поки стандарт на Фортран-95 не розділився на три частини через складність і громіздкість мовних конструктивів для розпаралелювання процесів, наслідування, плаваючої арифметики, оброблення рядків змінної довжини і розширення вводу-виводу та загалом експорту-імпорту даних. Унаслідок розпочатого перегляду чинного стандарту, 6-е покоління Фортран-2000 не поступатиметься за потужністю М. п. Сі та збагатиться засобами об’єктно-орієнтованого програмування, інтернаціоналізації, поліморфізму, задавання посилань, асинхронного вводу-виводу, інтервальної арифметики, зв’язку з мовами програмування тощо. Розвиток М. п. в Україні супроводжувався розробленням декількох оригінал. мов, серед них — М. п. недис для описування задач моделювання подій, аналітик для чисельно-аналіт. викладень на першому в світі персон. комп’ютері серії МИР, створ. у Києві.
Перспективи організації розподіленого оброблення на основі обчислюв. мереж, що відкрилися в 90-х рр., призвели до нового рівня у розвитку сучас. М. п., які прийнято відносити до 4-го покоління (4GL). Причому зазначена родина стандартизов. М. п. розвивається переважно всередині себе, не розширюючи меж та об’єктивно відбиваючи наслідки принципу спадковості поколінь М. п. Приклади — створення на основі SGML М. п. HTML для описування web-сторінок і на основі С++ мови Java для розроблення програм-аплетів у складі web-сторінок. Опис задачі або програма на М. п. перетворюються на машинну мову спец. процесором (транслятором чи інтерпретатором). Довільна М. п. машинно-незалежна, тому раніше напис. програму можна використовувати на різних комп’ютер. платформах і в різних операц. середовищах. Нині мовний процесор — це інтегр. середовище розробки приклад. програм і великих застосувань, у якому уніфіковано підтримується зв’язок з ін. М. п. та базами даних, надаються графічні засоби і забезпечується поліекранна схема діалогу з користувачем. У М. п. реалізовано принцип приховування інформації, коли абстракції даних (блоки і шаблони зовн. даних) чи дій (процедури та їхні параметри) можна використовувати як «чорний ящик», не знаючи подробиць їхнього облаштування та створення, і нагромаджувати продукти своєї та чужої праці. У сучас. М. п. вищий прояв цього принципу становлять абстракції типів даних, що визначають категорії даних з інкапсуляцією операцій над ними, та абстракції об’єктів, які домінують в об’єктно-орієнтованому програмуванні. За цим принципом визначаються інтерфейси — правила взаємодії програм. Щоб продукт праці програмістів могли використовувати інші, його функції та правила настроювання необхідно чітко визначати, тоді можливі колективна розробка програм і компонування їх з готових модулів, а також забезпечення розподіленого оброблення у середовищі відкритих систем. Проблемно-орієнт. мови стали підґрунтям для розвитку мов специфікації програм (М. с. п.) як засобів задавання специфікацій задачі, яку повинна розв’язувати програма. Зазвичай такий опис складається за певною моделлю розв’язання задачі; специфікуються характеристики і параметри моделі, тому в М. с. п. ціниться насамперед висока виразність. Два приклади М. с. п., відомих кожному програмістові,– IDL (Interface Definition Language) для описування інтерфейсів програм розподіленого застосування і синтакс. метамова розширених БНФ (бекусо-наурівських форм). Інший приклад М. с. п. — мови подання знань, які почали поповнюватися специфікаціями компонентів багатораз. використання, насамперед алгоритмів добування знань з дослід. даних. Алгоритми навч. стали настільки узагальненими, що вони включені до складу стандарт. б-к, і, як наслідок, почалася стандартизація цих алгоритмів, яка має на меті фіксацію їх як мовних конструктивів. За 40 р. розвитку М. п. збагатилися власним формально-алгоритм. апаратом, що становить інтелект інструментів розробки програм, і трансформувалися в алгоритм. системи із збалансов. наборами конструктивів, що спрацьовують в операц. середовищі з достатньо формаліз. та уніфік. поведінкою, правила якої разом із М. п. інтенсивно стандартизуються. Нині М. п. повернули собі назву алгоритмічних мов.
Рекомендована література
- Гнеденко Б В., Королюк В. С., Ющенко Е. Л. Элементы программирования. Москва, 1961;
- Сергієнко І. В. Інформатика в Україні: становлення, розвиток, проблеми. К., 1999.