Почему, черт возьми, PL/I?

Из записок Гарри Килдэлла, которые были опубликованы в 1994 году:

http://www.computerhistory.org/_static/atchm/in-his-own-words-gary-kildall/

Перевод с английского.

CP/M была стабильным программным объектом в те золотые деньки 1978-го, и она определенно удерживала за собой звание Стандарта Операционных Систем. Да, CP/M нуждалась в апгрейде своей версии 1.4, которая продержалась сколько-то лет, но я чувствовал бОльшую потребность в дополнении ее языком программирования, чтобы продвигать приложения для работы под управлением CP/M.

Выбор был небольшой, как и сейчас. Стандартными языками были FORTAN. COBOL, Pascal, PL/I и C. Уф-ф. Ни один из них по-настоящему не работал для всех микрокомпьютерных приложений, которые били ключом.

В середине 1978-го ко мне обратился доктор Фрайбургхаус из корпорации Data General, расположенной неподалеку от Бостона. Он пытался упростить PL/I фирмы IBM, динозавра, сделанного совершенно так, как будто им занимался Дисней.

Пожалуйста, поймите, что мне пришлось жить с этим глупым, комитетом разработанным, языком IBM PL/I на IBM System/370 в течение трех лет под угрозой призыва в армию. То был наихудший из когда-либо разработанных языков, уступая в этом только языку Basic, хотя и совсем немного.

Боб хотел, чтобы я посетил Комитет Стандартов ANSI по поводу нового PL/I, который там назвали “Subset G”, или PL/I-G. Боб знал о моей разработке компилятора PL/M для микрокомпьютеров Intel и вообразил (ошибочно, по моей оценке), что у меня найдется, что предложить для нового стандарта PL/I.

Комитет Стандартов Фрайбургхауса собирался в отеле La Playa в Кармеле, Калифорния, в середине 1978-го. Не могу сказать, что я был совсем уж пессимистично настроен на этой встрече, заявляя собравшимся, что “PL/I, между прочим, выглядит как сверхперегруженный человек-оркестр, которому следует, согласно его качествам и ценности, немедленно занять место в постоянной экспозиции Смитсоновского института сразу вслед за рептилиями.”

Ладно, все-таки это было немного пессимистично. В какой-то степени я был не в восторге от всей затеи, но, черт возьми, встреча была в конце той же улицы, где находилась DRI, а Фрайбургхаус давал в придачу бесплатный обед.

Но, слушая выступления, я узнал, что Фрайбургхаус уже разработал спецификацию для упрощенной версии PL/I, которая выглядела и работала скорее как Algol и Pascal, со всеми бизнес-функциями языка COBOL в виде очищенного, полного и вполне удобного языка программирования, который можно было бы использовать для микрокомпьютерных приложений.

Начать с того, что PL/I-G в большей степени придерживался правил нового направления языков программирования, но продолжал поддерживать хорошие вещи, вроде двоично-десятичных чисел (то, что любят бухгалтеры) и хорошие примитивы обработки строк.

Ладно, таким образом, после жалоб по поводу PL/I на одном заседании комитета или на двух, я решил, что мне нравится Subset G Боба. Что мне действительно не нравится — это необходимость признать, что я не прав. Ну, хотя бы Боб как-то оттянулся.

Я занялся проектом PL/I в тот самом 1978-м с тем, чтобы заставить Subset G поддерживать наших клиентов в CP/M. По моей оценке этот проект должен был занять у Билла Байерли и у меня девять месяцев.

Будучи от природы человеком правдивым, я должен признать, что до сих пор готов провалиться от стыда, так как этот PL/I-G не вышел в свет еще примерно два года.

“Э, ладно, это так, я немного отклонился от расписания. Я хочу сказать, это может случиться с каждым, верно? И… И… Э… Мой компьютер не работал всю неделю, и я не мог получить тот код от Билла, который был нужен, чтобы я мог работать над следующей частью для Билла, которую он продолжает от меня требовать.”

“Я имею в виду, это не моя проблема, а Билла, Или, если дело не в Билле, то, должно быть, в том продавце из Intel. Не помню, как его зовут, но он всё обещает ту плату памяти, и я не могу загрузить линковщик, пока ее не получу, вы знаете, о чем я? Э, я даже подъезжал туда, но моя машина сломалась на Гилрой, и это влетит в копеечку, ну, в два куска, и разве вам не кажется, что я мог бы получить этот самый рождественский бонус пораньше, потому что уже почти Хэллоуин, вы понимаете.”

“Ну, да, точно, мы с женой пришли на вечеринку DRI в виде русских космонавтов. Я — Юрий Гагарин, а…”

Вот так я учился управлению разработкой программного обеспечения. Я не только выслушал все эти оправдания, могу сказать, с изрядной гордостью, что я сам автор большинства из них. В защиту моего опоздания с выдачей готового PL/I я предлагаю аналогию между разработкой компиляторов и рождением и воспитанием детей. К моему большому счастью, я не имел возможности испытать на себе вторую часть аналогии. А аналогия вот какая.

За свою жизнь вы можете разработать и написать не много компиляторов. В противном случае появляется слишком много ваших собственных созданий, о которых надо заботиться, и всё, что вы слышите, — это рев и визг, когда дела идут не так. Кроме того, хотя концепция разработки может быть замечательной в начале, требуется слишком много времени для их высиживания, а пока что у вас головная боль и вы не можете спать по ночам. Но, конечно, когда они закончены, они всегда совершенны. Это был мой последний компилятор.

Но, по-моему, тот компилятор PL/I-80 был довольно элегантным по замыслу, поскольку он объединил все мои методики оптимизации кода компилятора. Он превращал операторы языка PL/I Subset-G в довольно совершенный код на языке ассемблера, предназначенный для усвоения процессором 8080. Ну, сделайте мне поблажку и позвольте немного прихвастнуть.

Однако, весь проект в целом, хотя он и вышел как следовало, был грандиозной отвлекающей демонстрацией. CP/M нуждалась в пересмотре в те самые два года работ над проектом PL/I. Так что под давлением разработчиков оборудования и конечных пользователей я на время оставил свои труды над PL/I, чтобы сделать CP/M версии 2.2, и это позволило всем тем разработчикам приспособить BIOS-ы к другим драйверам дискет, которые были, к сожалению, по большей части несовместимы. PL/I-G был выпущен компанией Digital Research в 1980 и был, с явным преимуществом, лучшим компилятором, разработанным для чипсета Intel.

Мой интерес состоял в том, чтобы благодаря PL/I-G получить замечательный инструмент создания приложений для операционной системы CP/M base. Это был превосходный язык для программных приложений, и программисты на языке ассемблера не могли превзойти тот машинный код, который он создавал. Многие компании его купили, но использовался он в еще более широком кругу.

0

Автор публикации

не в сети 5 часов

admin

3
Комментарии: 28Публикации: 173Регистрация: 13-06-2019
Авторизация
*
*

пять − 3 =

Регистрация
*
*
*

5 − 4 =

Генерация пароля

пять + десять =

Перевести »
Прокрутить вверх
Scroll to Top