"Фантастика 2024-110". Компиляция. Книги 1-19
Шрифт:
Логика, которую отстаивал я, заключалась в следующем:
Советское, конечно, СЕЙЧАС, реально самое передовое, но западный мир мы можем и не прогнуть. Они очень быстро напишут своё. Ломать доминирование латиницы множества стран, даже в отдельной отрасли — ИТ, и при использовании всех бонусов послезнания и в попытке навязывания своих стандартов, всё равно будет трудновыполнимым желанием..
Лучше, раз уж мы «вшили» (в отличие от истории моего прошлого) в «Стандарт 256» и LAT, и РУС, то дадим возможность и в ассемблере и в базовом языке программирования высокого уровня имени Ады Лавлейс (т.е. «бейсике») юзать и русские команды и на латынице.
Как
Т.о., на софте М-4 предлагалось продолжить логику, заданную в «бумажном варианте» ассемблера-автокода для М-1/2/3. Как в нормальной, уже не в «бумажном варианте», программе автокода-ассемблера с равноценными по правам мнемониками на русском и латинице(английский), транслируемыми в соответствующий каждой двуязычной паре мнемоник машинный код.
Вот эту логику (с пояснением — мы даём свободу выбора всем — пользователям и программистам СССР, пользователям и программистам «наглосаксонских капиталистов») я и излагал на совещании в наркомате на исходе 1944-го, уже не только применительно к автокоду, но и к первому «комфортному языку программирования», доступному обычным рядовым пользователям, а не только тем уникальным человеческим экземплярам, кто сами машинные коды М-1/2/3 (с расширением «до стандарта Z80» в М-4) в своей памяти держит:
Маленков, «понавтыкавшийся» в реалиях зари цифровой эры и усвоивший по необходимости (партия поставила на важнейший участок!) многие специфические понятия как и текущие ограничения, поинтересовался на примере как раз обсуждавшегося как «образец» «первого местного» языка программирования высокого уровня — «бейсика»:
— А места в ПЗУ хватит для двух.. «наборов»?
— Да! Наш диалект первого «ЯПВУ» будет содержать 80 операторов — команд и функций и нескольких дополнительных ключевых слов длиной от 2 до десятка байт. Просто удвоится это число. И несколько усложнятся процедуры редактирования и выполнения при интерпретации. Чуть-чуть больше потребуется места в ПЗУ для вывода интерпретатором кодов ошибок и текстов сообщений. Сами же процедуры и функции, соответствующие операторам языка, останутся одни и те же для обеих наборов операторов. Такая же приемлемая ситуация будет с двумя наборами команд ОС, с мнемониками ассемблера и прочим..
После нескольких оценочных подсчётов для разных случаев на том и пришли к общему знаменателю, который выразился в приказ по наркомату «О двуязычном стандарте команд и операторов ПО», который позже многими (особенно в США и в Европе) трактовался как «второе, после Стандарта 256, удачное решение коммунистов для получения дополнительных рыночных преимуществ».
Стоит отметить, что имена переменных, массивов и т.п. жёстко привязывались к латинице с мотивировкой «по подобию греческого алфавита в математике».
На примере того же местного «бейсика», это привело к тому, что работал как текст программы, очищавшей экран и печатавший пять строк с текстом «test» («тест») в «классическом для моего прошлого» виде:
10 cls
20 for i=0 to 4
30 print “test”
40 next
так и «русифицированный» для той же цели и с тем же результатом:
10 очэ
20 для i=0 до 4
30 печат “тест”
40 след
Можно было получить верный итог, и набрав «совсем ужасное»:
10 cls
20 для i=0 до 4
30 print “test”
40 след
Интерпретатору было всё равно. Хотя у моего сознания, с вбитым в подкорку англоязычным написанием синтаксиса языков программирования,
Замечу, что с моей точки же зрения, версия 1.0 нашего «бейсика» (пока без графических возможностей) была плодом скрещивания, «урезания хотелок» и «вдохновения момента первого творения» от двух диалектов basic — MSX и Sinclair (с нормальным посимвольным вводом текста исходной программы в редакторе интерпретатора, без ужасной привязки ввода операторов как у второго — «целыми словами» и путём нажатия соответствующих клавиш).
Но второе поколение было не только в «железе». Вместе с вторым поколением вычислителей, пользователям вручался пусть и ужасно медленный, но не существовавший до сего момента программный инструмент, с помощью которого даже «условный смышлёный школьник мог разрабатывать ПО».
Разумеется, пока это было чисто теоретически. План выпуска М-4 на весь 1948 составлял 600 штук. Плюс в том году же началось лицензионное производство на IBM..
Пытаться сразу «захватить американский рынок» с М-4 мы даже и не помышляли. СССР не менее США был заинтересован в сотрудничестве и, согласившись на продажу лицензии на выпуск нового вычислителя (а не только готовых образцов с МЗЭТ), получил доступ к некоторым интересовавшим нашу радиоэлектронную промышленность технологиям производства комплектующих из-за океана.
Проникновение на рынок США тогда случилось больше другим, но естественным путём, когда всё стандартное ПО даже лицензионных, выпущенных в США М-4, было создано у нас в НИИВТ.
Комплект ПО, входивший в минимальный стандартный набор выпущенных как на МЗЭТ, так и на IBM М-4 составлял:
* ПЗУ с интерпретатором «бейсика» как часть аппаратного обеспечения.
Именно с ним встречался по умолчанию юзер, работавший на стандартном (НЕ в специсполнении) вычислителе М-4, видящий на экране текстового дисплея — характрона М-4 стартовое меню после включения вычислителя и инициализации ПЗУ базового варианта машины.
Меню содержало следующие пункты:
1. Арифмометр, запускавший встроенный в ПЗУ калькулятор, использующий для расчётов те же процедуры, которые задействованы в «бейсике», занимающем основную часть объёма стандартного ПЗУ.
2. Запуск работы в среде «бейсика» для комфортного написания прикладных (чаще расчётного плана) программ обычными пользователями, не имеющими возможности или желания разбираться в высокоэффективном, но очень сложном написании ПО в машинных кодах.
3. Запуск процедуры тестирования "железа" на работоспособность.
4. Выбор ПЗУ для работы. По умолчанию на машине было только одно ПЗУ (стартовое меню, пункты которого сейчас перечисляются мной). Но в вычислителе М-4 может быть размещено одновременно до 4-х ферритовых кубиков ПЗУ. Используется, разумеется, в текущий сеанс работы — только одно из них, занимающее первые 16 кб адресного пространства в 64 килобайта.
5. Загрузка с магнитного носителя 0 (по умолчанию магнитный барабан), с первого сектора первой дорожки барабана. В таком случае происходит начало загрузки ОС-1. Считывается содержимое сектора в определённое место ОЗУ и с начального адреса загрузки в памяти начинается выполнение загруженного файла исполняемого машинного кода.