С. С. Лавров — А. П. Ершову
[1] Из переписки
С. С. Лавров
Дорогой Андрей Петрович!
В среду 8-го января мы с М. Р. и В. М. собрались, чтобы обсудить проекты сокращений АЛГОЛа. Просидели с 10 утра до 6 вечера, не вставая с места. Итогом этого сидения явился проект определения «среднего АЛГОЛа», который я Вам высылаю. Что касается «малого АЛГОЛа», то было предварительно решено, что в нем будет дополнительно:
а) запрещено целочисленное деление;
б) изменено определение элемента типа арифметической прогрессии в соответствии с первой половиной п. 18 моих предложений;
в) значение параметра цикла после выхода будет не определено при любом виде выхода из цикла;
г) запрещены буквенные ограничители параметров;
гг) указано, что фактические параметры, соответствующие формальным параметрам, вызываемым по написанию, могут быть только идентификаторами;
д) введено требование об обязательном соответствии типа фактического параметра типу формального параметра, с оговоркой, что фактический параметр типа integer может соответствовать формальному параметру типа real;
е) введено специальное описание переключателя (первые из таких описаний в каждом блоке), в переключательном списке которого будут перечислены все метки данного блока;
ж) запрещено использовать в качестве нелокализованных величин в теле внутренней процедуры формальных параметров внешней процедуры, вызываемых по написанию (в п. 40 моих предложений сказано «значением» — это описка);
з) ни один идентификатор не должен использоваться в описаниях, предшествующих описанию этого идентификатора.
Вопрос об исключении из «малого АЛГОЛа» логических переменных и функций, а также операций É и º, остался открытым. И под занавес мы решили, что публиковать проект «малого АЛГОЛа» для обсуждения еще рано, что этот язык должен быть еще более сокращен. Возможные пути сокращения: ограничения на вид индексных выражений (только c1 ´ I ± c2, где c1 и
c2 — целые без знака, I — простая переменная типа integer) выражения step (только целое без знака), границы индексов (нижняя граница 0 или 1, верхняя — простая переменная типа integer), список левой части (только одна левая часть), список цикла (либо несколько выражений, либо один элемент типа арифметической прогрессии, либо одно выражение и один элемент типа пересчета) и исключение переключателей из языка.
Но так как к единодушному решению (и вообще к какому-то решению, как и по «среднему АЛГОЛу») мы не пришли, то отложили этот вопрос до лучших времен. Более того, вчера в промежутке между заседаниями секции и редколлегии выяснилось, что и определение «среднего АЛГОЛа» нас не удовлетворяет (особенно В. М. и меня). В. М. предложил, чтобы все варианты языка были строго упорядочены, я его поддержал, насколько помню, таково было и Ваше пожелание. Все же М. Р. сказал, что он через Дмитриеву распространит проект «среднего АЛГОЛа» между всеми заинтересованными, и на этом мы пока порешили.
Забыл упомянуть, что начали мы наше совещание 8-го числа с обсуждения «почти полного АЛГОЛа», то есть с выработки какого-то толкования неопределенных мест в полном АЛГОЛе. Договорились: не использовать целые в качестве меток, не использовать величин own, фиксировать порядок вычисления выражений в соответствии с предложениями Наура в AB14, условиться, что параметр цикла после выхода из цикла не через заголовок сохраняет последнее присвоенное ему значение. Вот, кажется, и все — я, к сожалению, не записал это решение, понадеявшись, что В. М., который был инициатором этого обсуждения, раздаст нам точные формулировки.
Хочется знать Ваше мнение по всем этим вопросам. Я, безусловно, за то, чтобы языки были упорядочены следующим образом: малый АЛГОЛ Ì SUBSET Ì средний АЛГОЛ (почти полный АЛГОЛ, если нужно его определить) Ì АЛГОЛ 60 Ì (большой АЛГОЛ). Было бы очень полезно, если бы Вы на основании опыта работы с «Сибирским языком» внесли на обсуждение конкретные предложения по «большому АЛГОЛу».
Только 9-го я получил Вашу открытку из Свердловска. Большое спасибо за внимание. Добрались ли Вы домой к Новому году?
Желаю Вам доброго здоровья.
Ваш С. Лавров
Примечание
[1] Рукописный текст, архив, папка 97, листы 166—169.
Из сборника «Андрей Петрович Ершов — ученый и человек». Новосибирск, 2006 г.
Перепечатываются с разрешения редакции.