- -
- 100%
- +
— Вот, — ухватился Алексей. — Значит, блок уже наполовину родился. Мы его просто включим в план. Никакой самодеятельности, всё строго по ТЗ.
— По какому ТЗ? — усомнился Евгений. — Там же ни слова про телевизор.
Алексей усмехнулся.
— Пока ни слова, — поправил он. — Поэтому я вас и позвал.
Он постучал карандашом по тетради, возвращая внимание к заголовку «Табличный вычислитель. Черновики».
— Через неделю-другую Наталья Сергеевна будет собирать от нас предложения по уточнению ТЗ. Официально — «по результатам уточнения требований эксплуатации». Если мы сейчас чётко сформулируем, что хотим — шину, ЦУБ, порты, ВКУ, магнитофон — мы можем вписать это туда так, чтобы никто не испугался.
Евгений фыркнул.
— «Так, чтобы никто не испугался», — повторил он. — С нашими-то идеями.
— Не идеи страшны, а формулировки, — сказал Алексей. — Скажем так: поверьте моему опыту, я видел формулировки похуже.
Люба посмотрела на него внимательно. Она уже привыкла к его странным оговоркам вроде «в мою молодость уже были микросхемы помельче», но иногда эти фразы выбивали её из равновесия.
— Хорошо, — сказала она, возвращаясь в привычную плоскость. — Значит, что мы хотим продвинуть в ТЗ? Конкретно.
Алексей подумал и стал перечислять, отмечая на схеме карандашом.
— Первое. Внутри прибора — единая шина данных и адреса, чтобы можно было подключать различные узлы. На бумаге — «унифицированная система внутренних соединений».
— Без слова «шина», — напомнил Евгений.
— Без слова «шина», — согласился Алексей. — Второе. Наличие центрального… — он чуть замялся и всё-таки сказал, — управляющего блока, который задаёт порядок выполнения операций. В тексте — «внутренний управляющий узел, реализующий последовательность табличных операций».
Он отметил ЦУБ.
— Третье. Порты ввода-вывода, через которые можно подключать либо блок кнопок, либо внешние устройства. На бумаге — «разъёмы для подключения специализированных блоков индикации и управления».
Люба кивнула, уже мысленно разбирая, как это можно аккуратно зарисовать в схеме без лишних вопросов.
— Четвёртое, — продолжил Алексей. — Блок сопряжения с ВКУ. Формулировка — «возможность подключения видеоконтрольного устройства для вывода табличной информации». Никаких игр, никакой графики — только «табличная информация».
— Только, — хмыкнул Евгений. — А там уж как пойдёт.
— Пятое. Магнитофон. «Режим резервного хранения и восстановления типовых наборов табличных расчётов на бытовых магнитофонах».
— Шестое, — неожиданно вмешалась Люба. — То, что вы вчера придумали.
Она посмотрела на Алексея поверх очков. — Устойчивость к «кратковременным нарушениям питания».
Алексей удивился, потом вспомнил, что она заходила в лабораторию вечером и застала его как раз за черчением той самой стрелки от блока питания к ЦУБу.
— А, это, — сказал он. — Да. Можно туда же прописать: «реализованы меры по повышению устойчивости к кратковременным просадкам напряжения и сохранению промежуточных результатов».
Он хмыкнул. — Для министерства это будет звучать так: «ваши таблички не будут пропадать, если кто-то включит утюг». Хотя это мы, конечно, так не напишем.
— Мы напишем, что это «экономит рабочее время», — подсказал Евгений. — Они это любят.
— Верно, — согласился Алексей. — «Сокращение потерь рабочего времени при аварийных ситуациях в электросети».
Люба записывала, каллиграфически, в свой блокнот. Как только дело касалось официоза, у неё будто включалась другая скорость.
— И седьмое, — добавила она сама. — «Возможность расширения номенклатуры режимов табличных расчётов путём замены модулей постоянного запоминающего устройства».
Она чуть смутилась. — Это я у Натальи Сергеевны подслушала, когда она ругалась на какой-то прибор: там ПЗУ было намертво зашито, и приходилось плату переделывать.
— Великолепно, — сказал Алексей. — Это как раз наш интерпретатор и наши формулы.
Евгений, сдвинув брови, смотрел то на схему, то на записки Любы, то на чай.
— Слушайте, — сказал он наконец. — Это ведь реально…
Он замолчал, подбирая слово, которое не выглядело бы слишком пафосно.
— Это ведь реально может выстрелить, — наконец произнёс он. — Если мы протащим всё это через ТЗ, дальше уже будет не так просто сказать «уберите». Всё будет узаконено. Бумага терпит.
— Бумага — терпит, — согласился Алексей. — ЕС-ка — тоже терпит, раз уж она у нас будет всё это эмулировать. А вот начальство — посмотрим.
За окном кто-то громко чихнул. Радио во соседней комнате перешло на новости. Ведущий бодро сообщал о планах по вводу новых автоматических линий на каком-то заводе, «что позволит сэкономить тысячи человеко-часов».
— Видите, — кивнул на стену Алексей. — Мы просто помогаем исполнять решения партии и правительства. Они хотят экономить человеко-часы — мы им предлагаем прибор, который экономит время. Всё честно.
— Осталось только, чтобы они захотели экономить именно на этом месте, — заметил Евгений. — А не на наших зарплатах.
Люба тихо фыркнула.
— Зарплаты — это уже научная фантастика, — сказала она. — Мы пока давайте нашу фантастику по железу закончим.
Она закрыла свой блокнот, перевела взгляд на заголовок в тетради Алексея и вдруг заметила карандашную приписку.
— «Сфера-80»? — прочитала она вслух. — Это что?
Алексей машинально потянулся было закрыть обложку, но вовремя остановился.
«Замысел для своих», вспомнил он мысленно. Ну так свои — вот они, сидят с чаем.
— Рабочее название, — сказал он. — Для себя.
— Сфера чего? — не унимался Евгений. — Сфера применения? Сфера влияния? Земная сфера?
— Сфера — потому что это штука, которая должна быть не только в одном НИИ, — объяснил Алексей, сам удивившись, как легко придумываются легенды. — Не только в одном «секторе». А круглая, в смысле — везде потихоньку. В школах, домах пионеров, лабораториях.
Он пожал плечами. — А «80» — год, к которому мы теоретически можем успеть сделать что-то похожее на серию. Если нас раньше не прикопают.
Люба задумчиво провела пальцем по карандашным буквам.
— В документах так не напишут, — сказала она. — Там будет что-нибудь скучное вроде «Учебно-демонстрационный вычислительный комплекс типа Т-…»
Она поморщилась, представляя очередной индекс.
— В документах — нет, — согласился Алексей. — Поэтому я и написал для себя. Но знаете, всякие «Агаты» и «Корветы» тоже, наверное, сначала были какими-нибудь «ЭЦВ-34/1». А потом как-то по-человечески назвались.
Евгений усмехнулся.
— Хорошо, — сказал он. — Пусть будет «Сфера». Симпатичнее, чем «БВП-1 модернизированный». Только никому в коридоре не проговоритесь, а то Петров сразу побежит регистрировать себе «Сферу-2», а нас оставит без купола.
— Купол у него над головой — это отдельная история, — заметил Алексей. — Но да, пока это название — для своих.
Он постучал пальцем по тетради. — А для всех остальных — «табличный вычислитель с расширенными возможностями учебного применения».
Они переглянулись.
— Значит так, — подвёл итог Евгений. — Я беру на себя мысли про интерпретатор. Нарисую набор «формул» так, чтобы они выглядели прилично. Без «игры в морской бой» на первом этапе, честное пионерское.
— Я доработаю схему ЦУБа, — сказала Люба. — С учётом ваших дурацких… — она всё-таки улыбнулась, — перспективных площадок. И блок ВКУ хотя бы вчерне обрисую.
— А я, — сказал Алексей, — свожу это всё в один вменяемый текст для Натальи Сергеевны.
Чтобы она могла, не краснея, вставить его в проект ТЗ.
Он поднял стакан с чаем. — За то, чтобы через неделю нас не выгнали с планёрки за «отклонение от концепции».
Они переглянулись. То ли тост, то ли заговор.
— И за то, чтобы через пару лет хотя бы один прибор по этой концепции всё-таки появился, — добавил Евгений.
— И чтобы он не сгорал от первого же выключателя, — тихо сказала Люба.
Они чокнулись стеклом. Чай едва заметно плеснул.
Где-то в глубине коридора щёлкнул автомат, на секунду лампочка под потолком моргнула и снова загорелась.
— О, — сказал Евгений. — Это к теме устойчивости к кратковременным нарушениям.
— Видите, — откликнулся Алексей. — Даже щиток за нас голосует.
Он посмотрел на свои чертежи, на аккуратные записи Любы, на взъерошенного программиста с сигаретой за ухом — и вдруг ощутил странное спокойствие.
Да, впереди были ТЗ, ГОСТы, сметы, Первые отделы и все прочие элементы советской схемы. Да, их «Сфера» пока существовала только в тетрадке в клетку и в трёх головах, собравшихся вечером в общежитии.
Но у любой настоящей машины сначала появляется не корпус и не табличка с названием. Сначала появляется схема. И несколько людей, которые верят, что она не просто красивая, а рабочая.
Шаг нулевой. Инициализация.
— Ладно, — сказал он, закрывая тетрадь. — Питание, как я уже говорил, стабилизируем. Остальное — будем доводить по мере поступления сигналов.
За стеной кто-то завёл радио «Маяк» погромче. В эфире бодрый голос рассказывал о каком-то достижении науки и техники.
Алексей усмехнулся: где-то там наверху рисовали свои красивые блок-схемы будущего. Он, тут, в комнате 317, рисовал свою — поменьше и попроще. Зато такую, которую вполне реально собрать из К155, канифоли, терпения и нескольких упрямых голов.
И, возможно, именно она когда-нибудь окажется у какого-нибудь мальчишки на столе. Вместо очередного тёмного экрана после четырнадцатой минуты загрузки.
Глава 8. Язык ГОСТов
Утро следующего понедельника встретило Алексей не гулом вентиляторов, а шелестом бумаги.
КБ вяло просыпалось после выходных: кто-то в коридоре уже требовал у секретарши чай, Михалыч медленно шёл по коридору, разглядывая новую стенгазету, а на доске объявлений висела свежая бумажка «О порядке экономии бумажной продукции». Под ней кто-то аккуратно приписал карандашом: «Особенно при составлении ТЗ».
Алексей остановился на секунду, усмехнулся и поправил под мышкой пухлую папку. В папке лежала их вчерашняя «Сфера» — схемы, заметки, лист с аккуратным списком того, что они решили протащить в техзадание. Шина, ЦУБ, порты, ВКУ, магнитофон, устойчивость к провалам питания.
Теперь всё это предстояло перевести на язык, который понимало Министерство и не слишком любил Первый отдел: на язык ГОСТов.
* * *
Отдел документации жил в отдельной вселенной.
В КБ пахло канифолью и горячим текстолитом, а здесь — свежей бумагой, типографской краской и чем-то ещё, тягучим, от чего вспоминались школьные библиотеки. Стены сплошь заставлены шкафами с корешками: «ГОСТ 2.101—68», «ГОСТ 15.001—73», «Типовые формы ТЗ», сверху — аккуратные коробки с надписями «Архив. Не трогать».
За длинными столами сидели женщины разного возраста, вооружённые линейками, красными ручками и печатными машинками. Бумага шуршала, каретки стучали, где-то жужжала «Эрика». В углу негромко играл «Маяк» — ведущий бодрым голосом рассказывал о досрочном выполнении планов по выпуску чего-то важного и крупносерийного.
У окна — отдельный стол. На нём, как на пьедестале, — лампа зелёного стекла, аккуратная стопка ГОСТов, чернильница, набор цветных карандашей. И за всем этим — Наталья Сергеевна.
Она подняла глаза, когда тень от Алексея легла на её бумаги, и отточенным движением достучала фразу на машинке.
— Алексей Николаевич, — сказала она нейтрально. — С «табличным прибором» пришли?
— Сколько у нас теперь названий? — откликнулся он. — По дороге сюда успели назвать «табличным прибором», «счётной машинкой» и «настольным вычислителем».
— В протоколе он пока БВП-1, — напомнила Наталья. — Бытовой вычислительный прибор. Всё остальное — творчество масс.
Она указала ему на стул напротив, строгим жестом отодвинула в сторону текущую папку и положила перед собой чистый бланк с заголовком «Техническое задание».
— Ну что ж, — сказала она. — Попробуем из вашего творчества сделать документ.
Она посмотрела на папку у него под мышкой. — Это что, целиком вы от руки написали? Или коллективно рисовали?
— Коллектив народный, — ответил Алексей, выкладывая на стол тетрадь, несколько листов кальки и аккуратный лист с тезисами. — Я, Люба Ветрова, Евгений Громов. Схема, пояснения, список желаний.
— Желаний, — повторила она. — Ага. Значит, мне предстоит отделить желания от того, за что на планёрке спросят с Седых.
Она пролистала первые листы, остановилась на схеме с ЦУБом и тонкой шиной, приподняла бровь.
— Внутренние связи, — быстро поправил Алексей. — Унифицированные.
— Я помню, — сказала Наталья. — Вы уже пытались слово «магистраль» протащить через прошлую записку. Первый отдел потом целую неделю ходил с умным видом и интересовался, к какой «магистрали» вы это собираетесь подключать.
Она перевела взгляд с чертежей на него.
— Давайте так, Алексей Николаевич. Я сейчас внимательно слушаю, что вы хотите, а потом будем вместе решать, что «из этого можно», а что «из этого можно, но по-другому написано».
Она чуть улыбнулась уголком губ. — И что совсем нельзя, если вы хотите жить спокойно.
* * *
Он коротко изложил.
Без «компьютера» и «программирования». Только «табличный прибор», который умеет не только считать по одной методике, но и хранить несколько типовых методик, позволять оператору выбирать нужную, а в идеале — ещё и задавать последовательность шагов. Память — для чисел и для этих самых «последовательностей». Возможность «перескочить» с одной части последовательности на другую, если условие в таблице выполняется или нет. Плюс — ВКУ и магнитофон.
Слова «язык», «программа», «условный переход» он старательно глотал. Но опыт общения с документацией подсказывал: с той стороны стола сидит человек, который умеет слышать по смыслу, а не по словам.
Наталья слушала, не перебивая, делая пометки в своём блокноте. Разве что при словах «выбирать последовательность шагов» чуть-чуть нахмурилась.
— То есть, — сказала она наконец, — вы хотите, чтобы оператор не только нажимал кнопки по готовой схеме, но и мог составлять собственную последовательность действий?
— В рамках разрешённых, — уточнил Алексей. — С фиксированным набором операций. Сложить, вычесть, умножить, перенести, перейти к следующей строке…
Она кивнула.
— И чтобы прибор эту последовательность… запоминал?
Он осторожно кивнул.
— На уровне прибор — ничего не «понимает», — сказал он. — Просто в таблице для каждой «формулы» хранится набор шагов. Оператор вводит — прибор воспроизводит.
Он поймал её взгляд и добавил: — Мы не говорим «программа». Мы говорим «методика расчёта» или «набор табличных операций».
Наталья посмотрела на бланк ТЗ, потом снова на него.
— Хорошо, — сказала она. — Тогда давайте начнём сверху.
Она вставила бланк в машинку, старательно выровняла поля.
— Раздел первый: «Назначение и область применения». Здесь всё просто: «Прибор предназначен для выполнения типовых табличных расчётов в бухгалтериях, плановых отделах и учебных заведениях».
Она пощёлкала клавишами, проговаривая вслух. — «…обеспечивает повышение производительности труда и сокращение трудоёмкости расчётных операций». Это стандарт.
Алексей кивнул. Это была безопасная часть — все любили фразу «повышение производительности труда».
— Теперь «Основные функции». Вот здесь начнётся весёлое.
Она достала из стопки тоненькую брошюру «Типовая форма технического задания» и развернула закладку на середине.
— Смотрите, — показала она ему строчку. — Тут прямо написано: «В данном разделе перечисляются функции изделия и при необходимости — специальные режимы работы».
Она подчеркнула ногтем «при необходимости». — То есть всё, что будет звучать как «что-то новое», сразу попадёт под лупу. Особенно если там будет хоть отдалённо что-то про «самостоятельную деятельность оператора».
— Мы можем назвать это «расширенные режимы обработки табличных данных», — предложил Алексей. — Без уточнения.
— Можем, — согласилась она. — Но этого мало. Вопрос зададут при согласовании: какие именно режимы?
Она взяла карандаш, открыла чистую страницу блокнота и разделила её на две колонки.
Слева написала: «Как говорят инженеры», справа — «Как писать в ТЗ».
— Итак. Вы сказали: «адресуемое поле ячеек». Как вы это себе представляете?
— У нас таблица, — объяснил Алексей. — Строки и столбцы. Каждая ячейка имеет номер — адрес. Оператор должен иметь возможность сказать прибору: сейчас работаем с этой ячейкой, потом с той. Тогда можно хранить не просто последовательность действий «в целом», а операции над конкретными позициями.
Наталья аккуратно вывела слева: «Адресуемое поле ячеек». Справа — пока оставила пусто.
— Следующее. «Условный переход».
— Если мы при вычислении получаем результат — скажем, сумму больше нуля — нам иногда нужно перескочить не на следующий шаг, а на какой-то другой.
Алексей легко видел перед глазами знакомую конструкцию: `IF X> 0 THEN GOTO 50`. Только вместо X — содержимое ячейки, вместо 50 — номер строки в таблице. В детстве он проверял такие вещи, щёлкая по клавишам БК, пока строчка «IF» не вырезалась в мозгу.
— То есть, по-нашему, это «условный переход», — продолжил он вслух. — По-вашему…?
Наталья покачала головой.
— По-моему, слово «условный переход» в ТЗ на бытовой прибор — это прямой билет на беседу в одном соседнем кабинете, — сухо сказала она. — Условные переходы у нас бывают в больших ЭВМ и в задачах оборонного значения.
Она постучала карандашом по пустой правой колонке. — Для начала давайте заменим это на что-то вроде «изменения порядка обработки ячеек в зависимости от результатов вычислений».
Алексей прикинул.
— «Порядка обработки строк» — звучит невинно, — признал он. — Содержит, по сути, то же самое.
— Именно, — сказала она. — Наша задача — чтобы любой начальник, не вдаваясь в детали, увидел слова «строки», «таблицы», «учёт» и успокоился. А человек, который умеет читать между строк, понял, что там есть возможности.
Она осторожно вписала справа: «изменение порядка обработки элементов таблицы в зависимости от значений промежуточных результатов».
— Дальше, — подтолкнула она. — Что там у вас ещё… «Язык формул»?
Алексей чуть не поперхнулся.
— Я старался этого слова избегать, — сказал он. — Но да. Нам нужен хотя бы примитивный способ задавать последовательность действий так, чтобы оператор мог её посмотреть, поправить, сохранить.
Она вздохнула.
— Алексей Николаевич… люди боятся слова «язык», если это не «русский» и не «английский для специалистов по внешней торговле», — заметила она. — Особенно, если этот язык понимает техника.
Он помолчал секунду, потом осторожно:
— В руководстве по эксплуатации мы всё равно не будем писать «язык». Можно назвать это «режим табличных формул».
Он вспомнил свою первую книжку по BASIC для школьников. Тонкая, с зелёной обложкой, «Язык Бейсик для начинающих». Там автор осторожно объяснял, что это «средство составления алгоритмов решения задач». Слово «игра» в книге не встречалось ни разу, хотя половина класса использовала этот BASIC исключительно для «морского боя».
— В ТЗ, — продолжил Алексей, — можно ограничиться фразой: «Прибор обеспечивает формирование и хранение последовательностей табличных операций оператором».
Наталья потянулась к ГОСТу, полистала, что-то ищет, потом кивнула.
— Это уже ближе к тексту, который не сгрызут на экспертизе, — сказала она. — «Формирование последовательностей» звучит скучно и безопасно.
Она записала справа: «оператор имеет возможность задавать и корректировать последовательность выполнения табличных операций с последующим их хранением в памяти прибора».
— Видите? — она повернула блокнот к нему. — Ни слова про «язык», ни про «программы». Но любой более-менее толковый инженер поймёт, что это.
Алексей посмотрел на две колонки и не удержался от улыбки.
— Это похоже на таблицу перекодировки, — сказал он. — Слева — ассемблер, справа — высокоуровневый язык бюрократической спецификации.
— Не обижайте спецификации, — серьёзно ответила Наталья. — В отличие от многих программ, они иногда работают десятилетиями.
* * *
Часов через два у них появилась своя маленькая «таблица истинности» между инженерной и ГОСТовской речью.
«Шина данных» превращалась в «систему унифицированных внутренних соединений прибора».
«Регистры общего назначения» — в «внутреннее оперативное поле для хранения промежуточных результатов».
«Стек» — в «устройство временного запоминания параметров при выполнении сложных табличных расчётов».
— А если я напишу «последовательность операций с возможностью возврата к предыдущему состоянию», — сказала Наталья, — вы будете довольны?
Алексей прикинул.
— Это почти стек, — признал он. — По смыслу.
— И никаких стеков в документе, — удовлетворённо подытожила она. — Секретный стек.
Где-то к концу третьего часа они добрались до самого скользкого.
— «Адресуемое поле ячеек», — напомнила Наталья, касаясь ногтем этой строки. — Мне эта формулировка не нравится.
— Но без неё… — начал Алексей.
— Я понимаю, — перебила она. — Если нельзя указать, с какой именно ячейкой таблицы работать, ваш прибор превращается в очередной счётный аппарат с красивым корпусом.
Она наклонилась, задумчиво постучала ручкой по столу.
— Смотрите, если мы напишем «адресуемое поле ячеек», любой скучающий рецензент спросит: «А кто будет задавать эти адреса? С какой целью? Можно ли там что-то не то посчитать?»
Она подняла на него взгляд. — Вопросы «можно ли там что-то не то посчитать» нам с вами не нужны.
Алексей молча с этим согласился. В его времени к таким вопросам привыкали службы безопасности крупных корпораций. Здесь за них отвечал Первый отдел.
— Нам нужно так, — продолжила она. — Чтобы снаружи казалось: оператор только выбирает строки и столбцы, ничего особенного. А внутри вы можете работать с адресами сколько хотите.
Она сняла очки, протёрла их уголком платка, снова надела.
— Попробуем обойтись через «номера строк и граф», — сказала она. — В табличных документах это привычно.
— Вроде «оператор выбирает номер строки, номер графы»… — подхватил Алексей.
— …и прибор выполняет над соответствующим элементом таблицы указанную типовую операцию, — закончила она.
Она уже печатала, отстукивая фразу уверенно и быстро. — «…Прибор обеспечивает возможность обращения к любому элементу таблицы по его номеру строки и графы».
Алексей тихо хмыкнул.
— Это же и есть адресуемость, — сказал он. — Только вежливая.
— Адресуемость — внутри вашей схемы, — заметила Наталья. — Снаружи — у нас «нумерация строк».
Она задумалась, потом добавила ещё одну строчку: — «…включая возможность автоматического перехода к следующей или заданной строке в зависимости от результатов расчёта».
Пальцы Алексея словно рефлекторно дорисовали в воздухе: `IF SUM> 0 THEN GOTO NEXT`.
— «Автоматический переход к заданной строке в зависимости от результатов»… — повторил он. — Наталья Сергеевна, вы только что собственноручно легализовали условный переход.
— Я ничего не легализовала, — сухо сказала она. — Я всего лишь предусмотрела «удобства для оператора».
Она выдержала паузу. — Но да, если очень захотеть, на этом можно построить и то, что вы там себе придумали.
В её голосе прозвучало что-то вроде лёгкого вызова.
— Вы точно понимаете, что делаете? — спросил он.
— Вы думаете, вы один тут умный? — обиделась она без злости. — Я десяток лет пишу ТЗ на приборы, которые «по документам» всё время делают что-то скучное. А реально все знают, что делают они ещё пять интересных вещей.




