- •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.2. Процес розробки
Плани розробки мови FORTRAN існували ще до повідомлення про створення системи IBM 704 у травні 1954 року. Працівники корпорації IBM Джон Бекус і його група в листопаді 1954 року опублікували звіт під назвою "The IBM Mathematical FORmula TRANslating System: FORTRAN" (IBM, 1954). У цьому документі описується перша версія мови FORTRAN, яку ми називаємо FORTRAN 0, і яка передувала його реалізації. У роботі сміливо стверджувалося, що мова FORTRAN так само ефективна, як програми, закодовані вручну, і програмувати на ній так само просто, як у системі інтерпетованих псевдокодів. Ще одним спалахом оптимізму в даному документі було твердження, що мова FORTRAN буде усувати помилки програмування і містити систему відлагодження. На основі цих передумов у першому компіляторі мови FORTRAN передбачалася лише незначна перевірка наявності синтаксичних помилок.
Мова FORTRAN розроблявся в наступній обстановці:
Комп'ютери усе ще були невеликими, повільними і відносно ненадійними.
Використовувалися комп'ютери в основному для наукових розрахунків.
Не існувало ефективних способів програмування комп'ютерів.
Через відносно високу вартість комп'ютерів у порівнянні з оплатою роботи програмістів основною задачею перших компіляторів мови FORTRAN була висока швидкість виконання згенерованого об'єктного коду.
У такому середовищі і формувалися характеристики ранніх версій мови FORTRAN.
4.3.3. Огляд мови fortran I
Мова FORTRAN 0 видозмінювалася протягом усього періоду реалізації, який почався у січні 1955 року і завершився виходом компілятора у квітні 1957 року. Реалізована мова, яку ми називаємо FORTRAN I, описана у першому довіднику користувача "Programmer's Reference Manual", опублікованому в жовтні 1956 року (IBM, 1956). У мові FORTRAN I містилося форматування введення-висновку, імена змінних, котрі не повинні були перевищувати шести символів (у FORTRAN 0 — двох), визначені користувачем підпрограми, які, щоправда, не могли компілюватися окремо, умовний оператор IF і цикл DO.
Мова FORTRAN 0 містила логічний оператор IF, який оперував з булевими виразами, у яких оператори відношень записувалися в їхній алгебраїчній формі, — наприклад, використовувався знак ">" для позначення відношення "більше". Оскільки алфавіт комп'ютера IBM 704 не містив таких символів, як ">", то надалі від цих операторів відношень потрібно було відмовитися. Машина містила трьохваріантну команду розгалуження, засновану на порівнянні величини з комірки пам'яті з величиною в регістрі, тому вихідний логічний оператор IF був замінений арифметичним, який мав форму: <
IF (арифметичний вираз) N1, N2, N3
Тут за допомогою N1, N2 і N3 позначені мітки операторів. Якщо значення виразу виявлялося негативним, то виконувався перехід на мітку N1, якщо воно дорівнювало нулю— на мітку N2, а якщо було позитивним — на мітку N3. Цей оператор і по сьогоднішній день є частиною мови FORTRAN.
Оператор циклу мови FORTRAN I мав наступну структуру:
DO N1 перемінна = перше_значення, останнє значення
Тут N1 — мітка останнього оператора циклу, а першим вважався оператор, наступний за оператором DO.
Крім оператора IF, комп'ютер IBM 704 мав окрему команду для реалізації оператора DO. Оскільки ця команда була створена для циклів з наступною перевіркою умови, оператор DO мови FORTRAN I також був сконструйований подібним чином. Цикл із попередньою перевіркою умови міг бути реалізований на комп'ютері IBM 704, але це зажадало би введення додаткової машинної команди, що через орієнтованість структури мови FORTRAN на максимальну ефективність і стало причиною відмови від його реалізації.
Усі керуючі оператори мови FORTRAN I ґрунтувалися на командах комп'ютера IBM 704. Зараз уже не ясно, чи була форма керуючих структур мови FORTRAN I нав'язана конструкторами комп'ютера IBM 704, чи ж розроблювачі мови FORTRAN I запропонували використовувати таку форму команд у комп'ютері IBM 704.
У мові FORTRAN I не існувало операторів, що визначають типи даних. Вважалося, що змінні, що починалися з букв I, J, ДО, L, М и N, належать до типу цілих чисел, тоді як всі інші вважалися числами з плаваючою крапкою. Така умовність при виборі букв пов'язана з тим, що тоді цілі числа використовувалися переважно як індекси, а вчені, як правило, використовували для цієї мети букви і, j і k. Ще три букви були щедро додані розроблювачами мови FORTRAN.
Найбільш зухвалою заявою групи розроблювачів мови FORTRAN у процесі роботи над мовою було те, що машинні коди, породжувані компілятором, будуть майже настільки ж ефективними, що і написані вручну. Ці заяви більш, ніж що-небудь інше, сприяли скептичному ставленню з боку потенційних користувачів і перешкоджали виникненню значного інтересу до мови до його фактичного випуску. Проте, усіх здивувало те, що творці мови FORTRAN практично досягли поставленої мети з погляду ефективності. Велика частина 18 людино-літ напруженої роботи зі створення першого компілятора була присвячена оптимізації, але результати були найвищою мірою ефективними.
Перший успіх мови FORTRAN висвітлений в огляді, датованому квітнем 1958 року. До цього часу близько половини команд, написаних для комп'ютерів IBM 704, були реалізовані в мові FORTRAN, і це незважаючи на те, що роком раніше ставлення до мови з боку обчислювального співтовариства бути вкрай скептичним.
