Языки программирования  

 

Язык программирования PL/1 (Programming Language One — «язык программирования, первый»
Автор Фирма IBM

 

История

С самого начала работа велась в условиях нехватки времени. Группа приступила к работе в октябре 1963 года, а поскольку срок окончания работ по «Системе-360» был назначен на апрель 1984 года Участники изо всех сил стремились успеть к сроку. Поклонники Фортрана надеялись увидеть свой любимый язык в качестве основы нового языка. Но комиссия отвергла Фортран: он имел слишком ограниченные возможности, чтобы стать основой универсального языка. Споры по этому вопросу задержали работу на несколько недель. Обычно члены комитета собирались в выходные, как правило, в гостиничных номерах Нью-Йорка или Лос-Анджелеса.

«Временами, — вспоминал потом Рэдин, — самыми активными противниками дела оказывались не защитники Фортрана, а брошенные жены и мужья». Несмотря на административный нажим, спецификации языка были завершены лишь к февралю 1964 года — новый язык явно запаздывал к дебюту «Системы-360». Возможно, это было и к лучшему.

О результате усилий комитета, новом языке программирования, названном PL/1 (РL/1, от Programming Language One — язык программирования, первый), было доложено ассоциации SНАRE в марте.

Некоторые специалисты характеризовали язык как бесформенный, переусложненный и избыточный. Другие сравнивали его со складным ножом со 100 лезвиями, третьи саркастически вопрошали, почему бы проектировщикам не вставить туда еще и кухонную раковину? Надеясь, что большинство проблем, связанных с новым языком, прояснится в процессе реализации, фирма ИБМ дала задание своей лаборатории в Харсли (Англия) приступить к работе над компилятором.

Сотрудники лаборатории установили, что точное определение этого массивного языка займет не менее 200 страниц. Язык так сильно отредактировали, что разработчики вряд ли узнали бы в получившемся результате свое творение. Уточнения превратили язык в практичный инструмент программирования, который приветствовали многие программисты.

Фирма IBM надеялась, что PL/1 явится кульминацией всего того, что возникло в языках программирования в предыдущие десятилетия. Многие черты Фортрана, Кобола и Алгола действительно нашли отражение в PL/1. Но в то же время критики отмечали, что язык наделен слишком многими качествами, в которых лишь увековечились ошибки прошлого. По глубокомысленному замечанию Джона Бекуса, первые коммерческие языки оказали отрицательное влияние на развитие PL/1 и последующих языков программирования. «Поскольку первые языки слишком глубоко проникли в среду программистов, — говорил Бекус, — они до сих пор остаются тупиками на пути к более совершенным языкам и лучшему пониманию самих компьютеров».

Пример


NOD: PROCEDURE (X,Y) DECIMAL FIXED (5,0);
    DO WHILE (X^=Y);
        IF X>Y THEN X=X-Y;
        ELSE Y=Y-X;
    END;
    RETURN (X);
END NOD;