6.1. Перші кроки непроцедурної мови
Такі мови як Fortran,Algol,PL/1 відносяться допроцедурних мов, що задають комп’ютеру явну послідовність дій, яку потрібно виконати для вирішення завдання. На відміну від цьогонепроцедурні мови дозволяють програмістові просто описувати бажаний результат, не задаючи точного способу його отримання. Прикладом непроцедурної мови може бутиПролог (PROLOG, PROgramming in LOGic – програмування у логіці), який був розроблений у 1972 р.Аланом Колмарі з університету в Луміні (Марсель).
Витриманий у традиціях формальної логіки, Пролог придбав багато гарячих прихильників в європейських дослідницьких центрах зі штучного інтелекту. При роботі з ним програмістові не потрібно розписувати крок за кроком процедури – досить просто визначити безліч фактів та встановити відносини між ними. Наприклад, що “автомобіль” та “віз” кваліфікуються як таке, що називається “Засіб пересування”, і що воно має щось, що називається “колесами”. За допомогою цих співвідношень процедури, які вже вбудовані у мову, отримують логічний висновок про те, що, скажімо, “автомобіль” має “колеса”. Це вже були перші зародки об’єктно-орієнтованого програмування (ООП). Ця особливість робить Пролог дуже зручним для написання різновиду програм, які отримали назву “Експертні системи”. Будуючи логічні висновки на основі людських знань, які вводяться у програму, експертні системи досягають успіхів у таких областях діяльності, як діагностика захворювань, пошук родовищ корисних копалин тощо.
Одним із спеціалізованих розширень Алголу-60 була розроблена у 1964 році в Норвегії під керівництвом Дала і Нюгорда мова Simula. Ця мова призначалася для запису алгоритмів моделювання динамічних процесів (simulation – моделювання) і набула дуже великої популярності серед фахівців аж до наших днів, вона є живою мовою імітаційного моделювання. Проте історичне значення Simula виходить далеко за рамки спеціалізованого застосування, в ній вперше з’явилося революційне для програмування поняття об’єкту. У мові Simula об’єкти були ще спеціалізованими, а в новій версії мови Simula-67 поняття об’єкту було узагальнене і йому був наданий універсальний характер.
Ідея об’єкту далеко не одразу завоювала комп’ютерний світ. Першим масштабним проектом, що втілив принцип об’єктно-орієнтованого програмування, був реалізований у 1973 році під керівництвом Алана Кея в Xerox PARC проект Alto, про який ми розповідали вище. Програмну частину проекту Alto склали мова та система програмування Smalltalk – «розмовонька», що розвивають принципи Simula-67, та докорінно відрізняються від усього, що було раніше.
Відомі мови (Фортран, Алгол, Кобол, PL/1) ґрунтувалися на концепції «дані-процедури», тобто були процедурно-орієнтованими. Smalltalk була першою мовою, яка була заснована на концепції «об’єкти-повідомлення», тобто об’єктно-орієнтованою. З погляду мови комп’ютер є середовищем населеним об’єктами, які посилають один одному повідомлення. Кожен об’єкт – це нібито мікроскопічний комп’ютер зі своєю пам’яттю та своєю системою команд (змінні та методи об’єкту).
Для спілкування з користувачем у системі були вперше застосовані особливі графічні об’єкти – вікна, а для управління ними використовувався створений Дугласом (Дагом) Енгелбартом у 1968 році маніпулятор «миша». Мова шліфувалася протягом кількох років, і у 1980 році з’явилася версія Smalltalk/V, яка й на сьогоднішній день є недосяжним ідеалом виключно об’єктного програмування.
Проект Smalltalk був проривом у майбутнє, що випередив свій час на 10-20 років. Хоча фірма не зуміла отримати з нього комерційну вигоду, могутні ідеї проекту мали далекі наслідки. Після відвідин керівництвом Apple у 1979 році центру PARC у світ ПК були вкладені принципи графічного віконного інтерфейсу, а ідеї об’єктності почали завойовувати усі сучасні мови програмування.
У 1980 році з’явилася мова програмування «Сі з об’єктами», пізніше перейменованна в C++. Починаючи з версії 5.5, об’єкти увійшли до Паскаля, об’єктною мовою став Visual Basic. У 1995 році із швидкістю епідемії розповсюдилася 100% об’єктна мова Java.
Разом з тим, можливості оригінальної мови Smalltalk до кінця не вичерпані. Дивовижна стрункість, логічність, витонченість цієї системи програмування, як нам здається, ще довго слугуватиме джерелом ідей для інших систем. На Smalltalk звернула увагу фірма IBM, вона включила її в список базових мов програмування.
- Міністерство освіти і науки україни
- 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. Битва двох гігантів
- Список літератури