Опять вспомнил о своих попытках разобраться в экономике, о прибыли в плановой системе, о дотировании зарплат через дешевизну хлеба, транспорта, жилья, медицины, образования. Как это учитывать? Неопределенность, энтропия.
И он сосредоточился на том, что касалось его непосредственно: надо сокращать проектные затраты.
Уже с самого начала работ в этой сфере ему казалось странным, что реализация на электронной машине любой простейшей задачи из четырех арифметических действий выливается в создание многостраничной программы и требует нескольких месяцев работы программиста. Высокомерные новички, приступая к этой работе, усмехались: всего делов-то – подсчитать приход, расход и остаток.
На простом калькуляторе любой такой расчет делается проще простого, нужно только вручную подобрать совместно обрабатываемые строчки из разных документов. Сложность работы заключается именно в просмотре и подборе данных.
Значит, этот процесс и нужно автоматизировать: дать программисту такую стандартную программу, которая сама выполняет подбор информации из документов, записанных внутри машины в виде файлов. Программист же должен только задать правила подбора данных и формулы расчета. Дальше программа для конкретной задачи должна получаться автоматически.
Так определились требования к системе автоматизированного проектирования, которая позволит ускорить разработку в несколько раз.
Актуальные идеи витают в воздухе. Когда эти мысли у него уже созрели, обнаружилось, что Казанский институт разработал подобную систему: генератор совместной обработки файлов. Приобрели и опробовали, однако из-за многочисленных ошибок авторов система оказалась неработоспособной, хорошая идея была похерена.
В это время к нему обратился Вишняков. Старый работник института, старше его на пять лет, мрачноватый программист, он не поладил со своим начальством в соседнем отделе. Предложил:
— Я могу разработать систему совместной обработки файлов, которая позволит на порядок сократить затраты на программирование. Суть ее в том, что пользователь указывает только порядок обработки файлов и формулы расчета выходных показателей.
— Интересно, давайте поподробнее.
Выяснилось, что замысел Вишнякова совпадал с намерениями Колесова.
— Сколько времени вам нужно на разработку?
— Один год, работать буду я один.
— Хорошо, согласен.
Оба выполнили свои обязательства: Колесов без открытия заказа продержал его – кандидата наук – на весьма высоком окладе и не поручал никаких других работ, он сделал свою систему ЛПФ (язык программирования файлов). В дальнейшем значительная часть работ отдела выполнялась с ее помощью. Кроме того, Колесов открыл две бюджетные темы под готовую систему- то есть дважды продал ее: своему министерству и министерству легкой промышленности.
Размышляя по поводу сложности программирования простых задач, Колесов вышел на следующий, более высокий языковой уровень описания расчетов. Он обратил внимание на то, что порядок совместной обработки данных может однозначно определяться из сопоставления ключевых признаков входных и выходных показателей. Сущность идеи достаточно проста. Любой экономист (финансист, бухгалтер) умеет описать порядок расчета – алгоритм – с помощью арифметических формул с использованием знака подсуммирования – сигма и поясняющих указателей – индексов, областей и условий расчета. Редко кто из них пользуется чуть более сложными указателями – «для всех», «кроме» и другими, образующими в целом язык с громким научным названием «язык исчисления предикатов».
Он сформировал вариант простейшего языка такого уровня, назвал его – алгоритмический язык показателей – АЯП. Построил схему (алгоритм) автоматического перехода от этого языка к языку совместной обработки файлов. В это время у него появилась хорошая основа для создания своей системы: появились деньги на разработку пакетов программ для Министерства легкой промышленности. Образовался объем финансирования, достаточный для содержания отдела до конца пятилетки.
За время работы на «Скороходе» Пальмский и Колесов наладили хорошие отношения с ведущей организацией по автоматизированным системам в Министерстве легкой промышленности в Иванове. Заместитель главного инженера этого института Гунина стала заказчиком по системе пакетов. Хорошие отношения позволили Колесову втиснуть в содержание работы только то, что он хотел делать: средства автоматизации проектирования систем. Хотя, если исходить из общепринятых требований, нужно было бы делать типовые программы для обувных предприятий. Лишний раз подтверждалось правило, как важно оказаться впереди других, или, как говаривал Евдокимов, «быть на острие атаки». Правда, на этот счет есть и другие слова: снимать пенки.