"Фантастика 2024-110". Компиляция. Книги 1-19
Шрифт:
ОЗУ такого размера, разумеется, можно было использовать не только для данных, с новыми объёмами которых мы теперь смогли бы оперировать очень большими алгоритмами. В пределах максимально быстродействующей памяти, без обращения к магнитным барабанам, с программами, возрастающими в объёме и возможностях на 2 порядка по сравнению с теми, что помещались в пределах ограниченного ОЗУ первой моделью вычислителя.
Однако многих у нас смущала сложность создания и отладки программ подобных объёмов!
Но и тут решение, предлагаемое Рожковым, выглядело единственно возможным вариантом для таких размеров программ. Как и возможности их разрабатывать коллективами
Идея была красива: основной цикл — с вызовом, по потребности, процедур и функций (которые, в отличие от процедур, возвращают основному циклу какие-то значения).
Именно с подобной организацией внутреннего устройства ПО становилось возможным разрабатывать его, в случае необходимости, очень больших размеров. И, соответственно, возможностей..
Тот самый «передний край»! Никто в мире не делал подобного. Начав с революционной М-1, сейчас пробовали сделать следующий шаг — с новым, комплексным способом разработки программного обеспечения для неё целым научно-трудовым коллективом. Второе поколение дискретных вычислителей на новой элементной базе и новый подход — под стать их возможностям, в разработке ПО для них.
Вкупе с возможностью создания нового ПО — на имеющейся пока технике первых трёх моделей. Теперь становится очевидным заложенное изначально преимущество «совместимости» машинных кодов. Расширение набора машинных команд, которое закладывается в АЛУ М-4, будет использоваться только в ПО, которое будет разрабатываться на самой четвёртой модели… когда она будет создана.
Мы же работали в машинных кодах «базового набора» АЛУ М-1/2/3, что и позволяло отлаживать процедуры и функции в ПО по отдельности, на имеющемся «машинном парке». Собственного говоря, подобный подход и позволил нам тогда, в 1943-м, на существующей технике начать работу по созданию всего того огромного объёма ПО, которое желало получить от нас руководство.
Стены каждого из наших отделов были завешаны огромными структурными блок-схемами, отображающими внутреннее строение всех программных блоков «операционки», «языка программирования высокого уровня» и первых набросков программы — транслятора для автоматического, а не ручного перевода текста автокода/ассемблера в машинные коды.
Разумеется, всё это «жило своей жизнью», дорабатывалось по ходу дела, переделывалось и обсуждалось.
И крайне жёстко регулировалось нашим вторым заместителем. Очевидно, и как позже немного нехотя было признано им самим — у Рожкова имелось видение предполагаемого результата и он безжалостно отсекал в первой версии всё, не укладывающееся в образ, сложившийся в его голове, оставляя «необходимый минимум», ибо научный коллектив, осознавший потенциальные возможности М-4, желал сотворить «всё и сразу» в ПО для нового вычислителя. Впрочем, в пределах отведённых отдельным программистам блоков от них требовался только результат — стабильная и верная работа подпрограмм, их компактность и лучшее быстродействие.
Пожалуй, в ходе работы мы все вскоре поняли, что именно такое разбиение работы и позволило нам двигаться вперёд в разработке невиданных по сложности, объёму и возможностям программ совершенно нового типа. Сейчас, когда пишутся эти строки, к исходу шестого десятилетия нашего сумасшедшего века, нам кажется естественным, что операционные системы и/или встроенное в ПЗУ ПО «были всегда», как и наличие нескольких десятков современных реализаций нынешних языков программирования для множества как совместимых, так и
Каждая из программ нового типа — согласно новому воззрению трио наших начальников, вкупе с планируемым объёмом ОЗУ и внешней памяти, была представлена в виде основного блока и множества подпрограмм, которые вызывались из него.
«Процедурный подход» — ещё один термин из создававшейся на наших глазах и при нашем непосредственном участии, новой терминологии… которую сейчас, в конце 50-х, многие авторы, осмысливающие выводы двух десятилетий создания ПО для ВТ полагают частным случаем структурного программирования, ныне являющего полностью победившим в теории и практике разработки ПО.
Фактически, именно создание ОС для первого образца второго поколения дискретных вычислителей М-4 и первого в мире ЯПВУ были примерами (очень удачными) процедурно-структурного подхода к созданию ПО.
Некоторые аспекты разработки, акцент на которых идеологи и руководители разработки вычислителей закладывали при создании и проектировании первой модели вычислителя, становились понятными только в тот момент. Да, я говорю о релоцируемости процедур и функций. Сыграл свою положительную роль практически полный запрет на привязку к размещению по абсолютным адресам в пространстве ОЗУ. Строго обоснованное разумное использование «прямых дальних переходов» (за пределами возможностей команд «относительного перехода») и… привычная ныне «таблица адресов подпрограмм», которую, в случае необходимости, можно легко корректировать, не совершая бесконечных поисков по всему исходному тексту программы.
«Системщики» тогда, в июне 1943-го, «выкатили» вскоре утверждённый научным советом НИИВТ технический проект ОС, который был жёстко завязан на одновременную разработку «файловой системы» для магнитных барабанов, которые, как мы все знаем, в начале завершающегося ныне десятилетия начали бурно вытесняться накопителями на жёстких и гибких магнитных дисках и дешёвыми накопителями на магнитной ленте в случае бытового и развлекательного применения вычислителей.
У нас, «прикладников», несмотря на закладывавшиеся в первую версию ЯПВУ возможности работы как с магнитными барабанами, так и с накопителями на магнитной ленте с их последовательным доступом, всё же основная работа в июне-июле 1943-м сосредоточилась именно на проектировании и составе того, что должно быть в подобном инструменте для комфортного создания программ.
Хотя товарищ Рожков прямо говорил, что вообще-то наш «базовый» (BASIC) ЯПВУ имени Ады Лавлейс — это, в его видении, тоже дело системщиков, но пока было так. У нас тогда, в 1943-м, специалистов по программированию, были пусть и не единицы, но именно что небольшие десятки и все они, уже получившие реальный опыт разработки ПО за два года в разных местах применения М-1/2/3, были буквально на вес золота.
Пришедшая молодёжь из числа свеженьких выпускников физмата местного Молотовского университета имела определённый опыт при «прохождении» спецкурса в ВЦ универа, поначалу мы приглядывались к ним. Принятые с испытательным сроком к нам в НИИВТ и в КБ МЗЭТ, они смогли за это время лучше проявить себя и набрать необходимый опыт. «Тестовыми заданиями» для молодой поросли программистов занимались наши начальники отделов товарищи Ляпунов и Шура-Бура. По результатам которых и былм определены направления последующей деятельности новичков..