ALGOL!!!

Матеріал з wiki
Версія від 17:57, 18 лютого 2018, створена 111 (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук
Onpage keywords chain search with * wildcard. Example: sear* my nam* will find Searh my names and search my Name


АЛГОЛ

АЛГОЛ або ALGOL(скорочення від англ.ALGOrithmic Language - Алгоритмічна Мова) - сімейство імперативних мов програмування,першу версію розроблено в середині 1950-х, і стала де факто стандартною мовою публікації алгоритмів на наступні 30 років. АЛГОЛ було розроблено для подолання деяких проблем, які були притаманні для Фортраната дала поштовх для розвитку багатьох інших мов(серед них — Паскаль). У АЛГОЛ застосовувались операторні дужки, цу перша мова, яка для їх розмежування застосувала begin та end.

Офіційні версії АЛГОЛу називають за роками, коли вони вперше були опубліковані. Існує три великі офіційні гілки сімейства АЛГОЛ:

1.АЛГОЛ 58 — спочатку відомий як IAL (англ. International Algorithmic Language — Міжнародна Алгоритмічна Мова);
2.АЛГОЛ 60 — версія 1963 року;
3.АЛГОЛ 68 — версія 1973 року;

Історія

АЛГОЛ було розроблено спільним комітетом європейських та американських вчених на зустрічі 1958 року у Швейцарському Федеральному Інституті Технологій. Комітет визначив три різні синтаксиси: основний, публікації та реалізації. Різні синтаксиси дозволяли використовувати різні ключові слова та розділові знаки (коми та дефіси) для різних мов.

АЛГОЛ переважно використовувався для наукових досліджень у США та Європі. Його широке застосування було ускладнене відсутністю в його специфікації стандартного рішення для вводу-виводу даних та відсутністю інтересу з боку великих постачальників комп'ютерів. АЛГОЛ 60, попри те, став стандартном публікації алгоритмів та зробив вагомий внесок у розвиток подальших мов програмування.

Джон Бекус розробив нотацію Бекуса — метод опису мов програмування, прив'язаний до АЛГОЛу 58. Цей метод було переглянуто й розширено Пітером Науром для АЛГОЛу 60. За пропозицією Дональда Кнута його назву було змінено на нотацію Бекуса-Наура.

Властивості

Офіційна специфікація АЛГОЛ 60 не містила можливостей вводу-виводу даних; різні реалізації компілятора визначали свої власні методи, які рідко були сумісні один з одним. На відміну, АЛГОЛ 68 мав розширену бібліотеку transput, для вводу-виводу даних.

АЛГОЛ 60 дозволяв два методи передачі параметрів: за значенням, та за назвою. Передача за назвою мала певні обмеження, на відміну від передачі за посиланням, що робило її небажаною для програмування на імперативних мовах. Наприклад, в АЛГОЛ 60 неможливо зробити процедуру, яка обмінює значення двох параметрів, якщо фактичними параметрами можуть бути цілі змінні та масив цілих.

Приклад коду:

 procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
     value n, m; array a; integer n, m, i, k; real y;
 begin integer p, q;
     y := 0; i := k := 1;
     for p:=1 step 1 until n do
     for q:=1 step 1 until m do
         if abs(a[p, q]) > y then
             begin y := abs(a[p, q]);
             i := p; k := q
             end
 end Absmax

Посилання

Переглянутий звіт про алгоритмічну мову АЛГОЛ 60 Пітер Наур.

Developed by Інститут Програмних Систем