Комп'ютер ibm 704 і мова fortran 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Комп'ютер ibm 704 і мова fortran



Безумовно, одне з найбільших досягнень в обчислювальній техніці зобов'язано своєю появою впровадженню в 1954 році комп'ютера IBM 704, оскільки можливості саме цієї машини підштовхнули до розробки мови FORTRAN. Можна стверджувати, що якби не корпорація IBM зі своїм комп'ютером IBM 704 і мовою FORTRAN, то дуже скоро з'явилася б яка-небудь інша організація, яка має подібний комп'ютер і відповідну мову високого рівня. Проте, першою була все-таки корпорація IBM, яка не тільки передбачала такий розвиток подій, але і знайшла ресурси для того, щоб взятися за цю справу.

Історична ретроспектива

Однією з основних причин того, що імперативні системи з кінця 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, хронологія розвитку якої наводиться в наступних підрозділах.

Процес розробки

Плани розробки мови FORTRAN існували ще до повідомлення про створення системи IBM 704 у травні 1954 року. Працівники корпорації IBM Джон Бекус і його група в листопаді 1954 року опублікували звіт під назвою "The IBM Mathematical FORmula TRANslating System: FORTRAN" (IBM, 1954). У цьому документі описується перша версія мови FORTRAN, яку ми називаємо FORTRAN 0, і яка передувала його реалізації. У роботі сміливо стверджувалося, що мова FORTRAN так само ефективна, як програми, закодовані вручну, і програмувати на ній так само просто, як у системі інтерпетованих псевдокодів. Ще одним спалахом оптимізму в даному документі було твердження, що мова FORTRAN буде усувати помилки програмування і містити систему відлагодження. На основі цих передумов у першому компіляторі мови FORTRAN передбачалася лише незначна перевірка наявності синтаксичних помилок.

Мова FORTRAN розроблявся в наступній обстановці:

· Комп'ютери усе ще були невеликими, повільними і відносно ненадійними.

· Використовувалися комп'ютери в основному для наукових розрахунків.

· Не існувало ефективних способів програмування комп'ютерів.

Через відносно високу вартість комп'ютерів у порівнянні з оплатою роботи програмістів основною задачею перших компіляторів мови FORTRAN
була висока швидкість виконання згенерованого об'єктного коду.

У такому середовищі і формувалися характеристики ранніх версій мови FORTRAN.

Огляд мови 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, і це незважаючи на те, що роком раніше ставлення до мови з боку обчислювального співтовариства бути вкрай скептичним.

Огляд мови FORTRAN II

Компілятор FORTRAN II почав поширюватися навесні 1958 року. Він виправив безліч помилок системи компіляції мови FORTRAN I, а також додав у мову кілька істотних властивостей, найважливішою з яких була незалежна компіляція підпрограм. При відсутності такої властивості будь-яка зміна вимагала перекомпіляції всієї програми. Відсутність у мові FORTRAN 1 можливості незалежної компіляції разом з низькою надійністю комп'ютера IBM 704 обмежувало обсяг програми, що повинен був не перевищувати 300^00 рядків (Wexelblat, 1981). Програми, які мали більший обсяг, мали мало шансів завершити компіляцію до збою в роботі машини. Можливість включення в програму підпрограм, попередньо відкомпільованих на машинних мовах, значно скорочувала процес компіляції.



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 260; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.26.246 (0.011 с.)