Однако многих у нас смущала сложность создания и отладки программ подобных объёмов!
Но и тут решение, предлагаемое Рожковым, выглядело единственно возможным вариантом для таких размеров программ. Как и возможности их разрабатывать коллективами программистов, с соответствующим строгим разделением их участков работы.
Идея была красива: основной цикл — с вызовом, по потребности, процедур и функций (которые, в отличие от процедур, возвращают основному циклу какие-то значения).
Именно с подобной организацией внутреннего устройства ПО становилось возможным разрабатывать его, в случае необходимости, очень больших размеров. И, соответственно, возможностей..
Тот самый «передний край»! Никто в мире не делал подобного. Начав с революционной М-1, сейчас пробовали сделать следующий шаг — с новым, комплексным способом разработки программного обеспечения для неё целым научно-трудовым коллективом. Второе поколение дискретных вычислителей на новой элементной базе и новый подход — под стать их возможностям, в разработке ПО для них.
Вкупе с возможностью создания нового ПО — на имеющейся пока технике первых трёх моделей. Теперь становится очевидным заложенное изначально преимущество «совместимости» машинных кодов. Расширение набора машинных команд, которое закладывается в АЛУ М-4, будет использоваться только в ПО, которое будет разрабатываться на самой четвёртой модели… когда она будет создана.
Мы же работали в машинных кодах «базового набора» АЛУ М-1/2/3, что и позволяло отлаживать процедуры и функции в ПО по отдельности, на имеющемся «машинном парке». Собственного говоря, подобный подход и позволил нам тогда, в 1943-м, на существующей технике начать работу по созданию всего того огромного объёма ПО, которое желало получить от нас руководство.
* * *
Стены каждого из наших отделов были завешаны огромными структурными блок-схемами, отображающими внутреннее строение всех программных блоков «операционки», «языка программирования высокого уровня» и первых набросков программы — транслятора для автоматического, а не ручного перевода текста автокода/ассемблера в машинные коды.
Разумеется, всё это «жило своей жизнью», дорабатывалось по ходу дела, переделывалось и обсуждалось.
И крайне жёстко регулировалось нашим вторым заместителем. Очевидно, и как позже немного нехотя было признано им самим — у Рожкова имелось видение предполагаемого результата и он безжалостно отсекал в первой версии всё, не укладывающееся в образ, сложившийся в его голове, оставляя «необходимый минимум», ибо научный коллектив, осознавший потенциальные возможности М-4, желал сотворить «всё и сразу» в ПО для нового вычислителя. Впрочем, в пределах отведённых отдельным программистам блоков от них требовался только результат — стабильная и верная работа подпрограмм, их компактность и лучшее быстродействие.