Вспоминая минувшее - 70е годы
Самый удивительный факт, что завод поставлял только железо. Никакого намёка на программы. Чтобы выполнить самую простую операцию, например прочитать число с перфокарты, уже нужна программа. Кто-то где-то в Москве присел на стул и на коленке написал программу, выполняющую базовые операции, под названием «мини-диспетчер». Уже первое слово названия говорит о том, что это далеко не Windows и даже не MS DOS. И вот, чтобы сделать что-то полезное для производства, собрали два десятка программистов, вручили им мини-диспетчер, и велели посчитать план выпуска железобетона, оптимальное расписание перевозок бетона, ну и другие полезные вещи, в том числе самую полезную – это зарплату.
Программисты взялись за своё непростое дело. Чтобы был понятен уровень непростоты, посмотрим для примера, как сложить два числа. Программист должен был написать 24 цифры, что-то вроде «02005000 01005001 05005002», и пробить их на перфокарте. Зато с базовыми операциями было попроще, всего 8 или 16 цифр, типа «41001234». Это просьба к мини-диспетчеру, чтобы и он тоже поработал.
Чтобы написать программу расписания перевозок, надо было исписать цифрами целую пачку бумаги. После переноса на перфокарты получался ящик. Сейчас мы говорим в переносном смысле: «Файл весит 600 мегабайт». А тогда мы говорили буквально: «Программа весит 3 кг». Эти три килограмма перфокарт не должны были содержать ни одной ошибки. Исправление ошибок шло в три этапа. На первом этапе исправлялись ошибки перфорирующего устройства. Если дырочка на перфокарте пробита не полностью, то надо закончить пробивку лезвием безопасной бритвы. На втором этапе исправлялись ошибки оператора, пробившего не ту цифру. Перебивалась полностью вся перфокарта, содержащая 160 цифр. Наконец, мы добирались и до ошибок, сделанных программистом, то есть до процесса отладки. Весь процесс растягивался на несколько месяцев.
По такой технологии проработали три года. Однажды начальник ВЦ выразил своё недовольство – что вы так медленно работаете, соседи на Минске-32 работают быстрее? Я возразил, что им проще, у них есть ассемблер. «А почему у нас нет?» - «Завод не поставил.» - «А сами сделать не можете?» - «Можем», – ляпнул я. «Тогда делайте.» – «Это долго.» - «Сколько?». Я посмотрел на потолок в надежде увидеть срок. Не увидел. «Три месяца.» - «Знаю я тебя, всегда уменьшаешь сроки. Чтобы всё работало через полгода.»
Над макроассемблером мы работали вдвоём, с молодым спецом Валерием Алиевым. За три месяца сделали макроассемблер, назвали его БАК (Братский АвтоКод). Потом уже на БАКе переписали и расширили мини-диспетчер, получилась СУВВ (Система Управления Вводом-Выводом), и закончили работу созданием файловой системы. Через полгода отчитались, и были вознаграждены. По рационализаторской линии получили премию по 90 рублей.
Теперь программист для сложения двух чисел мог написать «СЛ a,b,c», и БАК преобразовывал макрокоманду сложения СЛ в вышеупомянутые 24 цифры. В состав БАК мы включили макрокоманды для реализации основных структур – ветвления и цикла. Но сам макроассемблер был написан не по правилам структурного программирования. И это был тихий ужас. Алгоритм был изображён на сплошной ленте из 20 листов формата А2, и часто стрелки перехода шли с 10-го листа на второй или с 18-го на 5-й. Программирование с использованием GOTO никогда не приветствовалось, потому что подобные программы трудно отлаживать, и практически невозможно продолжить чужую работу такого стиля. Мы пошли на это, чтобы вес программы в килограммах был поменьше и чтобы работало побыстрее. Я внутренне был готов, что будут ошибки. Но, как ни удивительно, все известные ошибки были исправлены при отладке. Конечно, неизвестные ошибки остались, ведь «любая программа содержит по крайней мере одну ошибку» (Мёрфи?).
Удивительно быстро программисты переключились на БАК. Работал он три года. Кроме нашего ВЦ, он использовался ещё в Новосибирске. В 1976-м появились ЕС ЭВМ, и Уралы постепенно были списаны один за другим.
Эту статью я посвящаю памяти Валерия Алиева, недавно ушедшего из жизни. 1 января ему исполнилось бы 63 года.
Свидетельство о публикации №213121901450
Галина Кравец 14.04.2014 07:27 Заявить о нарушении
Товий Пурк 20.04.2014 12:18 Заявить о нарушении
Галина Кравец 20.04.2014 18:23 Заявить о нарушении