BABBAGE — ЯЗЫК ПРОГРАММИРОВАНИЯ БУДУЩЕГО

В деле разработки новых языков программирования много спорных моментов, примером которых может служить ADA — новейшее средство программирования, разработанное Министерством обороны США и отличающееся чрезвычайно большими возможностями. Язык программирования ADA, как известно, был разработан с целью замены устаревших и все менее используемых языков, таких как COBOL и FORTRAN.

Трудности заключаются в том, что цикл замены одного языка программирования другим охватывает период времени от 20 до 30 лет и не начинается до тех пор, пока мы не убедимся на деле, что ныне существующие языки больше не отвечают нашим требованиям. Мы можем ускорить этот процесс, начав немедленную замену устаревших языков языком ADA. При этом, когда мы придем к выводу, что ADA уже устарел, замена на него только только успеет завершиться.

У нового поколения разработчиков языков программирования появилась тенденция называть разработанные ими языки именами реальных людей, а не прибегать к обычным акронимам. Так язык PASCAL получил наименование в честь первого создателя счетных машин, а язык ADA назван в честь первого программиста. Решив назвать свой новый язык в честь какого-либо человека, мы выбрали Чарльза Баббиджа, который умер в бедности, пытаясь закончить создание первой ЭВМ. Новый язык, таким образом, назван в честь первого разработчика систем, и его разработка проводится, подобно разработкам самого Баббиджа, без определенной финансовой поддержки, что, естественно, несколько тормозит работу.

Язык BABBAGE основан на элементах языков, которые были открыты после того, как было завершено создание языка ADA. К.А.Р.Хоор в своей лекции, за которую Ассоциация по вычислительной технике в 1980 году присудила ему премию Тьюринга, говорил о двух путях разработки программного обеспечения. Один путь заключается в том, чтобы сделать программу настолько простой, что становится полностью очевидно отсутствие каких-либо недостатков. А другой путь состоит в том, чтобы сделать программу настолько сложной, что это исключало бы всякую возможность каких-либо погрешностей. Разработчики языка BABBAGE выбрали третий путь, т. е. создать язык, который содержит только явные недостатки. Программы на BABBAGE отличаются такой низкой надежностью, что процедуры профилактического контроля можно начинать до того, как интеграция всей системы будет завершена. Это служит гарантией постоянного роста спроса на продукцию разработчиков на рынке сбыта в области обработки данных.

Как и в языке PASCAL в языке ADA используется принцип «строгой печати» с целью избежать появления ошибок, которые могут быть результатом смешения различных типов данных. Разработчики языка BABBAGE выступили в защиту принципа «надежной печати» с тем, чтобы избежать ошибок, появляющихся в результате неправильного написания слов в программе пользователя. В последующих версиях языка BABBAGE станет возможным применение «печати по слепому методу», что позволит удовлетворить давно назревшие требования пользователей.

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

В основу языка ADA положена идея портативности. В процессе разработки языка BABBAGE разработчиками учитывается прежде всего портативность аппаратуры. В конце концов, какая польза от ЭВМ, если заказчик не может постоянно иметь машину под рукой или программное обеспечение оказывается непереносимым.

Известно, что разработка языка программирования проходит успешно, если она находит финансовую поддержку со стороны правительства. Разработка языка COBOL, например, финансировалась правительством, а языка ADA — Министерством обороны. После долгих переговоров Министерство Здравоохранения согласилась оказать финансовую поддержку разработчикам языка BABBAGE.

В языке ADA долго не допускалось использования подъязыков. В основу языка BABBAGE, для увеличения его гибкости положена возможность расширения языка. Каждый пользователь может и должен сам определить размер своей версии языка программы. Спорный вопрос о размере BABBAGE отпадает, так как каждый пользователь сам определяет размер языка в соответствии с его требованиями. BABBAGE, таким образом, является идеальным языком для генерации версии компилятора в каждом отдельном случае. иже приведены примеры, которые могут дать некоторое представление о языке BABBAGE.

В структурных языках программирования запрещалась замена операторов передачи управления GOTO и многоходовых условных переходов более простой структурой IF-THEN-ELSE. В языке BABBAGE имеется несколько новых операторов условного перехода, которые выполняют роль конечных термов в структуре программы пользователя:

WHAT IF (что если)

используется в языках программирования; переход выполняется перед проверкой контролируемого условия;

OR ELSE (иначе)

наличие варианта, как, например, в фразе «Прибавить эти два числа, OR ELSE (или иначе)»;

WHY NOT? (почему нет?)

выполняет код который следует в безразлично каком порядке;

WHO ELSE? (кто еще?)

используется для опроса во время операций ввода/вывода;

ELSEWHERE (где-то в другом месте)

используется для того, чтобы указать, что программа пользователя находится где-то в другом месте, тогда как он полагает, что она здесь;

GOING GOING GONE (иду иду ушел)

используется для записи неструктурных программ; выполняет произвольный переход к другой части программы пользователя; выполняет работу 10-ти операторов GOTO.

В течении многих лет в языках использовались операторы FOR (в течении), DO UNTIL (выполнять до тех пор, пока), DO WHILE (выполнять в то время, как) и др. для обозначения цикла (LOOP). Исследуя это направление, разработчики языка BABBAGE предлагают нижеуказанные операторы, обозначающие цикл программы:

DON'N DO WHILE NOT (не выполнять несмотря на)

этот цикл не выполняется, если контролируемое условие не является ложным (или если это полдень в Пятницу);

DIDN'T DO (не выполнялось)

цикл выполняется один раз и прекращает дальнейшее выполнение каких-либо циклов;

CAN'T DO (невозможно делать)

выполнение цикла не может продолжаться;

WON'T DO (отказ выполнять)

центральный процессор приостанавливает выполнение программы, так как обнаруживает погрешности в коде выполняемого цикла программы; выполнение программы может быть возобновлено, если на пульте будет набрано «May I?» («Можно мне?»);

WIGHT DO (можно не выполнять)

зависит от того какое решение будет принято центральным процессором; выполнение, если CPU находится в рабочем состоянии; прекращение выполнения, если CPU в состоянии останова, или если CPU в состоянии останова по ошибке;

DO ONTO OTHERS (во всем, как хотите, чтобы поступали с вами, так поступайте и вы с другими)

используется при записи основного цикла систем, работающих в режиме разделения времени, с целью использования в этих системах единого способа реализации взаимоотношений между отдельными пользователями;

DO BACH (изобразить Баха)

используется для записи временных циклов для музыки, генерируемой с помощью ЭВМ (определение нужного ритма).

В каждом структурном языке, отвечающем самым последним требованиям, имеется оператор CASE для реализации многоходового ветвления. Так в языке ALGOL имеется оператор CASE с индексацией, а в языке PASCAL оператор с идентификацией. Т. е. в этих языках выбор не очень велик. В языке BABBAGE, напротив, имеется целый ряд операторов этого класса:

JUST IN CASE (на всякий случай)

предназначен для обработки запасных пояснений и вводимых в последнюю минуту сведений; разрешает пользователю выполнять умножение на ноль с целью исправления, если случайно выполнено деление на ноль; разрешается также выполнение обратного (восстанавливающего) действия и после случайного выполненитя умножения;

BRIFF CASE (случай краткой записи)

предназначен для обеспечения краткости программы;

OPEN AND SHUT CASE (случай «открыть и закрыть»)

при использовании этого оператора никакого доказательства правильности не требуется;

IN ANY CASE (в любом случае)

этот оператор всегда означает рабочее состояние;

HOPELESS CASE (безнадежный случай)

этот оператор всегда означает нерабочее состояние;

BASKET CASE (безвыходное состояние)

оператор действительно означает безвыходное состояние.

Сотрудники, входящие в группу разработки языка BABBAGE, постоянно работают над новыми особенностями языка, что будет способствовать беспрерывному росту уровня эффективности данного языка при его использования заказчиками. Например, разработчики языка BABBAGE в настоящее время заняты работой над оператором ALMOST EQUAL SIGN («почти с одинаковым знаком»), используемым для сравнения двух чисел с плавающей запятой. В работе над этим новым нюансом уже удалось преодолеть значительные трудности.

Ни один язык, неважно каким он является, не может быть использован сам по себе. И для языка BABBAGE совершенно необходима детально разработанная операционная система. После нескольких попыток использовать существующие системы сотрудники группы решили написать собственную «виртуальную» операционную систему. Любому известна операционная система виртуальной памяти. Но сотрудники группы по разработке языка BABBAGE сделали попытку найти несколько иное решение, зайдя подальше. Новая операционная система носит название операционной системы виртуального времени (VTOS). В то время как системы виртуальной памяти обеспечивают виртуальные свойства памяти ЭВМ, VTOS выполняет ту же функцию по отношению ко времени процессора.

В результате ЭВМ может одновременно работать с неограниченным количеством заданий. Подобно системе виртуальной памяти, которая физически хранит часть данных в ЗУ на дисках, VTOS должна также применять некоторые ухищрения для достижения своей цели. Хотя пользователь уверен, что все его задания выполняются в текущий момент времени, некоторые из этих заданий в действительности будут выполняться на следующей неделе.

Как можно видеть, язык BABBAGE все еще находится в стадии разработки. Группа сотрудников по разработке языка BABBAGE нуждается в предложениях специалистов по новым средствам для этого нового мощного языка программирования. Автор статьи, являясь одним из сотрудников группы разработки, обращается ко всем, кто работает в области обработки данных с помощью ЭВМ, с просьбой оказать поддержку группе в разработке нового языка программирования (будут приняты все предложения от всех лиц, желающих принять участие в работе группы).

Загрузка...