7.5. Prolog – нездійснена мрія еом V покоління
Мова Prolog (PROgramming for LOGic – програмування для логіки) була створена в Європі на початку 70-х років. Теорія була розроблена в Едінбурзі (Великобританія) Робертом Ковальським та Маартеном ван Емденом, перша реалізація здійснена Аленом Кольмарі (Colmerauer, Alain) з Марселя (Франція).
На відміну від усіх попередніх мов, включаючи Лісп, Пролог не є алгоритмічною мовою, тобто він не описує як треба отримати результат. Він є декларативною мовою, тобто показує що дано та що треба отримати.
Програма на Пролозі складається з фактів деякої наочної області та правил. Інтерпретуюча система сама робить логічний висновок, тобто застосовує правила до фактів, для цього використовується апарат математичної логіки (логіка предикатів першого порядку).
Варто пригадати те, які надії декілька десятиліть тому покладалися на штучний інтелект, якими розумними уявлялися майбутні машини і те, яким провалом все зрештою скінчилося. Фон нейманівські машини (фактично – послідовні цифрові процесори) здатні сприймати єдиний вхідний потік одиниць і нулів та обробляти дані, що складаються з тих же одиниць і нулів. Тому, можливості таких компютеров з часом виявляться вичерпаними, і ні про яке реальне використання сучасних комп’ютерів для вирішення інтелектуальних завдань говорити не доводиться. Рано чи пізно, окрім вирішення рутинних завдань, сучасні комп’ютери повинні стати інтелектуальними асистентами людини так, як це їх собі уявляли Ванневар Буш та Даг Енгельбарт.
Тому саме на Пролог – могутню та красиву мову у 80-і роки були покладені дуже великі надії. Мова йде про вельми амбітний проект ЕОМ п’ятого покоління, який був заявлений Японією у 1981 році та розпропагандований у пресі під назвою «Японський виклик». Йшлося про комп’ютер з паралельними процесорами, що працює з даними, які зберігаються в обширній базі даних, а не у файловій системі. При цьому доступ до даних повинен був здійснюватися за допомогою мови логічного програмування.
Метою програми було створення «епохального комп'ютера» з продуктивністю суперкомп'ютера і потужними функціями штучного інтелекту. Початок розробок – 1982, кінець розробок – 1992, вартість розробок – 57 млрд ієн (близько 500 млн дол).
Цей термін повинен був підкреслити, що Японія планує здійснити новий якісний стрибок у розвитку обчислювальної техніки. У той час як попередні покоління вдосконалювалися за рахунок збільшення кількості елементів на одиницю площі (мініатюризації), комп'ютери п'ятого покоління повинні були для досягнення надпродуктивності інтегрувати величезну кількість процесорів.
Передбачалося, що у 90-х роках будуть створені комп’ютери, які мають принципові відмінності від усіх попередніх:
нова технологія виробництва мікросхем, що знаменує перехід від кремнію до арсеніду галію, яка дає можливість на порядок підвищити швидкодію основних логічних елементів;
прототип машини володітиме продуктивністю між 100 млн та 1 млрд LIPS, де LIPS – це логічний висновок за секунду (на той час типові робочі станції були здатні на продуктивність близько 100 тисяч LIPS);
нова архітектура (не фон нейманівська);
нові способи введення-виведення інформації – розпізнавання та синтез мови та образів;
відмова від традиційних алгоритмічних мов програмування (Фортран, Алгол і т. п.) на користь декларативних;
створення робочих станцій з високою продуктивністю та розподіленими функціями;
орієнтація на завдання штучного інтелекту з автоматичним пошуком розв’язання на основі логічного висновку;
комп’ютери повинні оперувати величезними базами даних та базами знань;
підвищення продуктивності за рахунок реалізації програмних рішень на апаратному рівні;
продуктивність таких машин повинна сягати одного мільярда логічних висновків за секунду.
Йшлася мова про комп'ютер з паралельними процесорами, що працюють з даними, які зберігаються в обширній базі даних, а не в файловій системі. При цьому доступ до даних повинен був здійснюватися за допомогою мови логічного програмування. Передбачалося, що прототип машини буде володіти продуктивністю між 100 млн і 1 млрд LIPS, де LIPS - це логічний висновок в секунду. До того часу типові робочі станції були здатні на продуктивність близько 100 тис. LIPS.
Хід розробок представлявся так, що комп'ютерний інтелект, набираючи потужність, починає змінювати сам себе, і метою було створити таке комп'ютерне середовище, яке само почне виробляти наступне, причому принципи, на яких буде побудований остаточний комп'ютер, були заздалегідь невідомі, ці принципи належало виробити в процесі експлуатації початкових комп'ютерів.
Далі, для різкого збільшення продуктивності, пропонувалося поступово замінювати програмні рішення апаратними, тому не робилося різкого поділу між завданнями для програмної та апаратної бази.
Очікувалося домогтися істотного прориву в області вирішення прикладних задач штучного інтелекту. Зокрема, повинні були бути вирішені наступні завдання:
автоматичний портативний перекладач з мови на мову (зрозуміло, безпосередньо з голосу), який відразу би усунув мовний бар'єр японських підприємців на міжнародній арені;
автоматичне реферування статей, пошук сенсу;
інші завдання розпізнавання образів – дешифрування, аналіз дефектів тощо.
В основу програмного забезпечення майбутніх ЕОМ передбачалося покласти мову Пролог, а всю архітектуру орієнтувати на реалізацію алгоритмів логічного висновку.
Цю програму передбачалося реалізувати за 10 років, три роки для початкових досліджень і розробок, чотири роки для побудови окремих підсистем, і останні чотири роки для завершення всієї системи.
Віра в майбутнє паралельних обчислень була на той час настільки глибокою, що проект «комп'ютерів п'ятого покоління» був прийнятий в комп'ютерному світі дуже серйозно. Після того, як Японія в 70-і рр. зайняла передові позиції в побутовій електроніці, і в 80-ті стала виходити в лідери в автомобільній промисловості, японці придбали репутацію непереможних.
На жаль, цьому проекту не судилося збутися. Основна причина – не вдалося досягти ефективної апаратної інтерпретації Прологу. Пролог також не підтримував паралельні обчислення. Його робота у мультипроцесорному середовищі виявилася неефективною, не дивлячись на всі спроби модернізувати його. Було прийнято рішення по створенню нових типів мов програмування.
Був зроблений помилковий вибір мов типу Лісп і Пролог для створення бази знань та маніпулювання даними. У 1980-і рр. ці системи програмування користувалися популярністю для САПР та експертних систем, проте експлуатація показала, що додатки виявляються мало надійними і погано відлагоджувались в порівнянні з системами, які були розроблені звичайними технологіями, від чого від цих ідей довелося відмовитися. Корпораціями, що займалися розробкою програмного забезпечення, були запропоновані нові мови, але кожна з них володіла істотними недоліками, що не дозволяло у повній мірі використовувати паралельні обчислення.
Інша проблема виникла з продуктивністю процесорів. Запаралелювання багатьох процесорів не викликало очікуваного різкого стрибка продуктивності. Вийшло так, що робочі станції, які були створені в рамках проекту, успішно досягли і навіть перевершили необхідні потужності. Розроблені у лабораторіях машини, швидко застарівали. З’являлися комерційні комп’ютери, які за швидкістю вже перевершували їх.
План заміни програмних засобів їх апаратними аналогами був невдалий. Таке бачення у інженерів було у попередньому поколінні комп’ютерів. Але на сьогоднішній день ситуація змінилася докорінно. Процес розвитку інформаційних технологій пішов зворотнім шляхом. Апаратне забезпечення спрощувалося, надаючи універсальності, а всі завдання перекладалися на програмне забезпечення.
Ідея саморозвитку системи, за якою система сама повинна змінювати свої внутрішні правила і параметри, виявилася непродуктивною – система, переходячи через певну точку, скочувалася в стан втрати надійності та втрати цілісності, різко «дурніла» і ставала неадекватною.
З будь-яких точок зору проект можна вважати абсолютним провалом. За десять років на розробки було витрачено понад 50 млрд ієн, і програма завершилася, не досягнувши мети. Робочі станції так і не вийшли на ринок, тому що однопроцесорні системи інших фірм перевершували їх за параметрами, програмні системи так і не запрацювали, поява Інтернету зробило всі ідеї проекту безнадійно застарілими. Проект був обмежений категоріями мислення 1970-х рр. і не зміг провести чіткого розмежування функцій програмної та апаратної частини комп'ютерів. Завдання створення нового, революційного покоління комп’ютерів явно відкладається на XXI століття.
- Міністерство освіти і науки україни
- 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. Битва двох гігантів
- Список літератури