Троянец двух господ 1943 (СИ) - Кулаков Игорь Евгеньевич
Разумеется, всё это «жило своей жизнью», дорабатывалось по ходу дела, переделывалось и обсуждалось.
И крайне жёстко регулировалось нашим вторым заместителем. Очевидно, и как позже немного нехотя было признано им самим — у Рожкова имелось видение предполагаемого результата и он безжалостно отсекал в первой версии всё, не укладывающееся в образ, сложившийся в его голове, оставляя «необходимый минимум», ибо научный коллектив, осознавший потенциальные возможности М-4, желал сотворить «всё и сразу» в ПО для нового вычислителя. Впрочем, в пределах отведённых отдельным программистам блоков от них требовался только результат — стабильная и верная работа подпрограмм, их компактность и лучшее быстродействие.
Пожалуй, в ходе работы мы все вскоре поняли, что именно такое разбиение работы и позволило нам двигаться вперёд в разработке невиданных по сложности, объёму и возможностям программ совершенно нового типа. Сейчас, когда пишутся эти строки, к исходу шестого десятилетия нашего сумасшедшего века, нам кажется естественным, что операционные системы и/или встроенное в ПЗУ ПО «были всегда», как и наличие нескольких десятков современных реализаций нынешних языков программирования для множества как совместимых, так и нет вычислительных платформ разнообразного назначения. Но тогда, в 1943-м, такое будущее поначалу было очевидным только очень немногим. И все они работали в нашем НИИВТ!
Каждая из программ нового типа — согласно новому воззрению трио наших начальников, вкупе с планируемым объёмом ОЗУ и внешней памяти, была представлена в виде основного блока и множества подпрограмм, которые вызывались из него.
«Процедурный подход» — ещё один термин из создававшейся на наших глазах и при нашем непосредственном участии, новой терминологии… которую сейчас, в конце 50-х, многие авторы, осмысливающие выводы двух десятилетий создания ПО для ВТ полагают частным случаем структурного программирования, ныне являющего полностью победившим в теории и практике разработки ПО.
Фактически, именно создание ОС для первого образца второго поколения дискретных вычислителей М-4 и первого в мире ЯПВУ были примерами (очень удачными) процедурно-структурного подхода к созданию ПО.
Некоторые аспекты разработки, акцент на которых идеологи и руководители разработки вычислителей закладывали при создании и проектировании первой модели вычислителя, становились понятными только в тот момент. Да, я говорю о релоцируемости процедур и функций. Сыграл свою положительную роль практически полный запрет на привязку к размещению по абсолютным адресам в пространстве ОЗУ. Строго обоснованное разумное использование «прямых дальних переходов» (за пределами возможностей команд «относительного перехода») и… привычная ныне «таблица адресов подпрограмм», которую, в случае необходимости, можно легко корректировать, не совершая бесконечных поисков по всему исходному тексту программы.
* * *«Системщики» тогда, в июне 1943-го, «выкатили» вскоре утверждённый научным советом НИИВТ технический проект ОС, который был жёстко завязан на одновременную разработку «файловой системы» для магнитных барабанов, которые, как мы все знаем, в начале завершающегося ныне десятилетия начали бурно вытесняться накопителями на жёстких и гибких магнитных дисках и дешёвыми накопителями на магнитной ленте в случае бытового и развлекательного применения вычислителей.
У нас, «прикладников», несмотря на закладывавшиеся в первую версию ЯПВУ возможности работы как с магнитными барабанами, так и с накопителями на магнитной ленте с их последовательным доступом, всё же основная работа в июне-июле 1943-м сосредоточилась именно на проектировании и составе того, что должно быть в подобном инструменте для комфортного создания программ.
Хотя товарищ Рожков прямо говорил, что вообще-то наш «базовый» (BASIC) ЯПВУ имени Ады Лавлейс — это, в его видении, тоже дело системщиков, но пока было так. У нас тогда, в 1943-м, специалистов по программированию, были пусть и не единицы, но именно что небольшие десятки и все они, уже получившие реальный опыт разработки ПО за два года в разных местах применения М-1/2/3, были буквально на вес золота.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Пришедшая молодёжь из числа свеженьких выпускников физмата местного Молотовского университета имела определённый опыт при «прохождении» спецкурса в ВЦ универа, поначалу мы приглядывались к ним. Принятые с испытательным сроком к нам в НИИВТ и в КБ МЗЭТ, они смогли за это время лучше проявить себя и набрать необходимый опыт. «Тестовыми заданиями» для молодой поросли программистов занимались наши начальники отделов товарищи Ляпунов и Шура-Бура. По результатам которых и былм определены направления последующей деятельности новичков..
Пару ныне известных создателей столь модных и стремительно набирающих популярность как за рубежом, так и у нас, в СССР «электронных игр» (я прямо пишу сейчас о товарищах Голдобине и Носкове) ещё тогда приметил сам Рожков, имевший определенные планы на будущее… которое наступило только сейчас. В связи с крайне бурным ростом в последние два года мирового рынка электронных развлечений, будет любопытен экскурс в те дни и обстоятельства, мало известные широкой публике, которые мы открываем в этой энциклопедии:
Стоит отметить, что именно «крестики-нолики», созданные Рожковым осенью 1941-го, можно считать первой, хотя и самой простейшей «электронной игрой» в мире, соперником в которой выступал простейший алгоритм. Но по настоящему популярной в среде программистов на пошедшей в серию в 1946-м М-4 с её текстовым дисплеем-характроном стала вторая, фактически полноценная, хотя и полностью развлекательная игра, которая ныне доступна и широкой публике. Эта игра была создана товарищем Рожковым для первого работающего прототипа М-4, увидевшего свет в начале 1945-го года.
Да, я говорю о «Тетрамино». Фигурки, падающие в стаканчик, известны сейчас во всём мире..
Хотя за прошедшие с того времени почти 15 лет, звание первого электронного развлечения пытались оспорить создатели электромеханического развлекательного устройства «Ниматрон», прославившегося на Всемирной выставке 1939 года в Нью-Йорке, различие в возможностях и принципах реализации столь велико, что, сей спор выглядит ныне, на фоне свыше трёхста имеющихся к настоящему времени реализаций ПО, связанных с электронными развлечениями, лишь забавным курьёзом.
Вскоре появились по настоящему серьёзные игры — шашки и шахматы за авторством ассистентов нашего НИИВТ. Их создали Голдобин и Носков, под руководством занимавшего в тот момент должность начальника отдела системного программирования товарища Шуры-Буры, который поставил разработку электронного развлечения на серьёзный теоретический уровень, решив несколько математических проблем, связанных с алгоритмами глубины пересчёта вариантов.
* * *Идея разработки ПО в «комфортной среде», на самих вычислителях, к которой тогда только-только подвели нас товарищи Брук, Лебедев и Рожков, захватила всех.
Вместо корпления над листами со строками автокода/ассемблера, с десятикратной проверкой как логики подпрограмм, так и перепроверкой перевода их в машинные коды и вводом их для «прогона» на ДЭВМ с помощью как штекерного, так и несколько более быстрого ввода через телетайпы..
Который в головах многих из нас уже тогда логично виделся в образе будущей «клавиатуры», аппаратной реализацией которой тогда занимались «железячники» соответствующего отдела НИИВТ и товарищи из КБ МЗЭТ.
* * *Машинный парк, конечно, у нас в НИИВТ количественно и качественно был уже тогда, в 1943-м, на высшем по тому времени уровне. Поэтому мы имели возможность самостоятельно вводить отлаживаемые подпрограммы. Фактически, машинное время каждого из 7 (ещё 4 было у «железячников») вычислителей делилось на троих-четверых программистов, что давало возможность в течении суток каждому программисту иметь 5–6 часов личного машинного времени, не считая перерывов на техническое обслуживание ДЭВМ.