- •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.3.1. Історична ретроспектива
Однією з основних причин того, що імперативні системи з кінця 1940-х до середини 1950-х років вважалися цілком прийнятними, була відсутність на існуючих комп'ютерах апаратних засобів, які виконують дії над числами з плаваючою крапкою. Подібні дії повинні були моделюватися на програмному рівні, що значно збільшувало час їхнього виконання. Через те, що на програмну обробку чисел із плаваючою крапкою, ішов дуже великий час роботи процесора, витрати на інтерпретацію і моделювання індексної адресації були відносно несуттєвими. Поки дії над числами з плаваючою крапкою виконувалися на програмному рівні, витрати на інтерпретацію були припустимими. Утім, багато програмістів того часу ніколи не використовували системи інтерпретації, віддаючи перевагу ефективному ручному програмуванню на машинних кодах. Повідомлення про появу системи IBM 704, яка має на апаратному рівні як індексну адресацію, так і команди для роботи з плаваючою крапкою, сповістило про кінець ери інтерпретації (принаймні, в області наукових обчислень).
Незважаючи на те що мова FORTRAN вважається першою компільованою мовою високого рівня, питання про те, хто дійсно заслуговує честі бути названим творцем першої подібної мови, усе ще залишається відкритим. Кнут (Knuth) і Пардо (Pardo) (1977) приписують цю честь Аліку Гленні (Alick E. Glennie) за створення компілятора Autocode для комп'ютера Mark I у Манчестері. Гленні розробив цей компілятор у британському Форт-Холстеді (Fort Halstead), що належить Королівському науково-дослідному товариству Збройних Сил (Royal Armaments Research Establishment). У робочому стані компілятор був з вересня 1952 року. Але Джон Бекус (Wexelblat, 1981) дотримується думки, що створений Гленні компілятор Autocode був настільки низькорівневим і машинно-орієнтованим, що його не можна вважати повною мірою системою компіляції. Бекус вважає, що першими авторами компілятора потрібно вважати Ленінга (Laning) і Цірлера (Zierler) з Массачусетского технологічного інституту (MIT — Massachusetts Institute of Technology).
Система Ленінга і Цірлера (Laning and Zierler, 1954) була першою алгебраїчною системою трансляції, створеною для реалізації. Під словом "алгебраїчна"' ми маємо на увазі те, що ця система транслювала арифметичні вирази, використовуючи виклики математичних функцій, а також містила індексовані посилання на змінні. Реалізована ця система була на комп'ютері Whirlwind, що належав інституту MIT, який влітку 1952 року існував у формі експериментального прототипу, а до травня 1953 року набув форми, більш придатної для використання. Для кодування кожної формули чи виразу, що зустрічаються в програмі, описуваний транслятор генерував виклик підпрограми. Вихідна мова була легкочитабельною, і єдиними дійсно машинними командами були команди розгалуження. Незважаючи на те що робота над створенням цього транслятора передувала роботі над створенням мови FORTRAN, вона так і не вийшла за рамки Массачусетського технологічного інституту.
Незважаючи на ці ранні роботи, першою компільованою мовою високого рівня, яка набула широкого поширення, стала мова FORTRAN, хронологія розвитку якої наводиться в наступних підрозділах.
