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