- •1.2. Алгоритм
- •1.3. Предмет науки програмування
- •1.4. Застосування мов програмування
- •1.5. Стандартизація мов програмування
- •1.6. Середовище розробки
- •1.7. Тестування і верифікація програм
- •Лекція 2. Алгоритми і обчислення
- •2.1. Алгоритми
- •2.2. Обчислювальні машини
- •2.3. Основи фон-нейманівської архітектури
- •Лекція 3. Парадигми програмування
- •3.1. Базові парадигми програмування
- •Процедурне програмування
- •Абстрактна семантика процедурних програм.
- •Денотаційна семантика.
- •Операційна семантика
- •Структурність і модульність
- •3. 3. Модульне програмування
- •3.4. Об’єктно-орієнтовне програмування
- •3.5. Функціональне програмування
- •3.6. Логічне програмування
- •3.6. Алгебраїчна парадигма
- •Висновок
- •Лекція 4. Огляд основних мов програмування
- •4.1. Мова Picmkalkul Конрада Цузе
- •4.1.1. Історичні передумови
- •4.1.2. Огляд мови
- •4.2. Мінімальне програмування на апаратному рівні: псевдокоди
- •4.2.1. Мова Short Code
- •4.2.2. Система Speedcoding
- •4.2.3. Система "компіляції" univac
- •4.2.4. Суміжна робота
- •4.3. Комп'ютер ibm 704 і мова fortran
- •4.3.1. Історична ретроспектива
- •4.3.2. Процес розробки
- •4.3.3. Огляд мови fortran I
- •4.3.4. Огляд мови fortran II
- •4.3.5. Мови fortran IV, fortran 77 і fortran 90
- •4.4. Функціональне програмування: мова lisp
- •4.4.1. Витоки робіт в області штучного інтелекту та обробка списків
- •4.4.2. Процес розробки мови lisp
- •4.4.3. Огляд мови
- •4.4.5. Два нащадки мови lisp
- •4.4.6. Споріднені мови
- •4.5. Перший крок до удосконалення: мова algol 60
- •4.5.1. Історична ретроспектива
- •4.5.2. Початкова стадія розробки
- •4.5.3. Огляд мови algol 58
- •4.5.4. Прийняття звіту про мову algol 58
- •4.5.5. Процес розробки мови algol 60
- •4.5.6. Огляд мови algol 60
- •4.5.7. Оцінка мови algol 60
- •Лекція 5. Трансляція і формальні граматики
- •5.1. Транслятори
- •5.2. Процес трансляції
- •5.3. Формальні граматики. Нбф-граматика
- •Лекція 6. Java - мова ооп
- •6.2. Основні властивості програм і перші приклади
- •6.3. Арифметичні і побітові оператори мови Java
4.5.3. Огляд мови algol 58
Мова, розроблена на зустрічі в Цюріху, був названий IAL (International Algorithmic Language — інтернаціональна алгоритмічна мова). У процесі конструкторських робіт була запропонована назва ALGOL (ALGOrithmic Language — алгоритмічна мова), але ця назва була відхилена, оскільки вона не відбивала інтернаціонального складу комітету. Утім, протягом наступного року назва все-таки була змінена на ALGOL, а сама мова одержала згодом ім'я ALGOL 58.
За багатьма параметрами параметрам мова ALGOL 58 була спадкоємицею мови FORTRAN, що цілком природно. В ній узагальнювалася велика кількість властивостей мови FORTRAN, а також вводилися деякі нові конструкції і концепції. Одні узагальнення робилися з метою створення мови, не прив’язаної до окремої машини, інші — для підвищення гнучкості і потужності мови. У результаті отримали рідкісну комбінацію простоти і вишуканості.
У мові ALGOL 58 була формалізована концепція типів даних, хоча явного оголошення вимагали тільки змінні, що не є числами з плаваючою крапкою. У ній була реалізована ідея складених операторів, які потім були включені в більшість мов. Крім того, були узагальнені такі властивості мови FORTRAN: дозволене використання ідентифікаторів довільної довжини (на відміну від наявного в мові FORTRAN обмеження до шістьох символів); дозволене використання масивів будь-якої розмірності (на відміну від наявного в мові FORTRAN обмеження на тривиміри); нижня межа масиву могла визначатися програмістом (у той час як у мові FORTRAN вона завжди мала значення 1); дозволені вкладені оператори розгалуження (чого не було в мові FORTRAN).
У мові ALGOL 58 була використана трохи незвичайна форма оператора присвоєння. У мові Plankalkul Цузе використовував оператор присвоєння такого вигляду:
вираз => величина
Хоча під час обговорюваних подій опис мови Plankalkul ще не був опублікованим, деякі європейські члени комітету зі створення мови ALGOL 58 були знайомі з цією мовою. Комітет запозичив з мови Plankalkul форму оператора присвоєння, але з розумінь обмеженого використання символів знак "більше" був замінений двокрапкою. Потім, в основному через наполегливі вимоги американців, повний оператор став мати такий вигляд:
вираз := величина
Європейці надавали перевагу зворотній формі.
4.5.4. Прийняття звіту про мову algol 58
Публікацію в грудні 1958 року звіту про мову ALGOL 58 (Perlis and Samelson) зустріли з великим ентузіазмом. У Сполучених Штатах нову мову уявляли скоріше набором ідей в області структури мови програмування, ніж універсальною мовою програмування. Дійсно, звіт про мову ALGOL створював враження не закінченого продукту, а чорнового документа, виставленого на міжнародне обговорення. Тим не менш, цей звіт став підґрунтям трьох основних робіт з розробки і реалізації мов програмування. В Університеті штату Мічиган була створена мова MAD (Arden et al., 1961). Американською військово-морською електронною групою (U. S. Naval Electronics Group) була створена мова NELIAC (Huskey et al., 1963). Корпорація з розробки систем System Development Corporation розробила і реалізувала мову JOVIAL (Shaw, 1963). Назва останньої мови — абревіатура від "Jules' Own Version of the International Algebraic Language" (Власна версія інтернаціональної алгебраїчної мови, розроблена Жулем), а сама вона єдиною версією мови, основою якої стала мова ALGOL 58 і яка була широко розповсюджена (Жулем був Жуль Шварц (Jules I. Schwartz), один з розробників мови JOVIAL). Мова JOVIAL стала широко використовуватись, оскільки чверть сторіччя вона була офіційною мовою наукових розробок ВВС США.
Інша частина обчислювального співтовариства Сполучених Штатів не була так прихильна до нової мови. Спочатку корпорація IBM і її головна наукова група SHARE, схоже, прийняли мову ALGOL 58. Корпорація IBM почала її реалізацію незабаром після публікації звіту, і група SHARE сформувала підкомітет SHARE IAL для вивчення цієї мови. Пізніше підкомітет запропонував асоціації АСМ стандартизувати мову ALGOL 58, і в такий спосіб корпорація IBM реалізувала його на всіх комп'ютерах 700-й серії. Проте, ентузіазм незабаром спав. Навесні 1959 року і корпорація IBM, і група SHARE, що мали вже досвід роботи з мовою FORTRAN, вирішили, що з них досить проблем і витрат, щоб починати роботу над новою мовою. У середині 1959 року і корпорація IBM, і група SHARE, що вклали чималі засоби в мову FORTRAN, вирішили підтримати саме цей проект і зробити його мовою наукових розробок для 700-й серії машин корпорації IBM, відмовившись, таким чином, від мови ALGOL 58.
