Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?
StuhlbergR 2007-2008 ©
|
Беседы о поколениях ЭВМН. Бусленко, В. Бусленко
© Издательство "Молодая гвардия", 1977 г.
Все настойчивее вторгаются электронные вычислительные машины в науку и в народное хозяйство. О зарождении этих машин, принципе их действия, их развитии и влиянии на жизнь человека расскажут член-корреспондент АН СССР Н. Бусленко и его сын кандидат технических наук В. Бусленко.
ЭВМ четвертого поколения. Перспективы
- Теперь бы поговорить и о сути пакетов; сказать, что за идея лежит в их основе, идея, которая наконец-то позволила решить решить проблему программирования.
- Пожалуй, об окончательном решении еще говорить не приходится. Скорее следует сказать о забрезжившей надежде на решение этой проблемы в будущем.
Современный пакет программ - это государство в государстве: программное государство пакета в электронном государстве ЭВМ. Есть у этого программного государства все, что приличествует любой ЭВМ: своеобразный "программный процессор", программные средства общения с пользователем (ввод-вывод), внешняя память ("банк данных" пакета) и даже собственная операционная система.
Но главное своеобразие пакета - сходная с ЭВМ широта функций. Оказывается, пакет можно использовать не только для решения одной конкретной задачи, а целого класса задач, причем, весьма широкого.
Конечно, пакеты программ существовали и раньше; взять хотя бы библиотеки стандартных подпрограмм, появившихся еще в эпоху ЭВМ второго поколения. Однако современный пакет отличается от набора стандартных программ так же, как современная ЭВМ от ее ламповых предков. Сейчас все более популярным становится термин "пакеты программ второго поколения", который говорит о качественном скачке в развитии этого перспективного направления математического обеспечения ЭВМ.
К созданию современных пакетов прикладных программ привели две тенденции. Первая - это накомпленный опыт в постановке и решении отдельных классов задач на ЭВМ, который приводит к обобщению постановок таких задач для целых классов искомых величин. Вторая - новый подход к программированию сложных задач, который выливается в создание своеобразных "программных БИСов" высокой универсальности.
Сказанное удобно пояснить на примере класса задач имитационного моделирования сложных систем. Как уже говорилось, имитационная модель представляет собой программу, воспроизводящую при помощи операции ЭВМ сложные процессы, происходящие в реальной системе, будь то производственный, информационный или биологический объект.
Для создания программной модели необходимо сначала формально описать происходящий процесс, то есть построить его математическую модель - аналогию. Второй этап - программирование математической постановки, то есть запись его алгоритма в виде последовательности команд и реализации полученной программы на ЭВМ.
Вообще, метод математического моделирования весьма универсален, да и применяется он с давних пор. Первыми математическими моделями можно считать соотношения Г.Глалилея и И.Кеплера, описывающие движение планет, и законы динамики И.Ньютона. Второе рождение метод математического моделирования пережил с появлением ЭВМ, этих колоссальных "усилителей интеллекта". Огромная скорость работы, "бездонная" память ЭВМ позволила ученым перейти от очень грубых и очень общих постановок моделей к более детальным и точным; от решения частных задач, в основном касающихся исследования отдельных элементов систем, к исследованию сложных систем, состоящих из сотен и тысяч таких элементов.
Огромный опыт, накопленный в процессе построения большого числа разнообразных моделей, позволил специалистам усмотреть определенные общие свойства любых моделей, выделить некоторый обобщенный прием построения модели любой сложной системы независимо от ее реального содержания. Прием этот состоит в разбиении сложной системы на простые части, которые называются элементами системы, и в описании их математически. Затем таким же образом следует описать и сложную структуру взаимодействия элементов и, наконец, произвести увязку этих разнообразных описаний в единый моделирующий алгоритм с последующим программированием.
В процессе работы над составлением моделей удалось также обобщить математическую модель поведения элемента. Оказалось, что элементы любой системы работают, как правило, похожим образом, и, стало быть, возможно создание "обобщенной универсальной математической модели элемента сложной системы".
Такая модель, носящая замысловатое название - "кусочно-линейный агрегат", создана киевским математиком, членом-корреспондентом АН УССР И. Коваленко. Около десяти лет трудился ученый над обобщением процесса функционирования элемента.
Постепенно выкристаллизовывались и другие обобщенные математические модели, например, схема для описания структуры любой сложной системы. Так, шаг за шагом, складывалась универсальная математическая модель сложной системы.
Подобная обобщенная модель обладает рядом привлекательных качеств: во-первых, для решения любых частных задач удобно пользоваться единой стандартной методикой и универсальными обобщенными описаниями; во-вторых, благодаря обобщенности и универсальности модели существенным образом может быть унифицировано и ее программирование.
"Пусть наша программа моделирования, - подумали программисты, - тоже состоит из стандартных блоков: модели элемента системы (кусочно-линейный агрегат) и модели взаимодействия элементов (на базе универсальной методики описания структуры). В силу общности этих моделей любую встретившуюся нам в практике систему мы в состоянии моделировать на нашей программе. Для этого необходимо представить описание системы в виде выбранной универсальной формы".
Это поразительный результат! Отныне для решения столь сложной задачи, как моделирование сложной системы, не нужно ничего программировать; достаточно лишь сводить математическое описание системы к заранее запрограммированной стандартной форме!
Здесь, очевидно, просматривается и другая, программная, сторона проблемы создания пакета: она состоит в новых особенностях "технологии" программирования.
Проведем совеобразную аналогию между сменой поколений ЭВМ и развитием программных комплексов для ЭВМ. История программирования не менее захватывающа, чем история самих ЭВМ.
Вспомним ЭВМ первого поколения. Здание машины собирается из отдельных "кирпичиков": диодов, ламп, сопротивлений, конденсаторов. Подобно ЭВМ, и программы набираются вручную из простейших команд: сложить, вычесть, умножить, разделить и т.п.
Второе поколение машин характеризуется уже известной сложностью первичных "кирпичей", содержащих десятки элементов. Аналогичные "кирпичи" появляются и в области программирования - это знакомые библиотеки стадартных подпрограмм. А появившиеся вскоре языки программирования есть не что иное, как попытка перелодить на ЭВМ составление из этих "кирпичей" более крупных программных блоков, то есть своеобразная попытка автоматизации трудоемкого процесса программирования.
Третье поколение ЭВМ, как известно, характеризуется наличием интегральных схем - сосредоточением сотен и тысяч элементов. Такое же "крупноблочное" строительство имеет место и в одласти программирования - достаточно вспомнить стандартные операционные системы, "банки данных", типовые АСУ и т.д.
Наконец, в машинах четвертого поколения появились БИСы. Они не только содержат тысяси и сотни тысяч элементов, но в силу унификации и стандартизации обладают весьма универсальными функциями, имеют широкий спектр приложений. Уже упоминалось об универсальных БИСах, настраиваемых на классы операций путем введения небольших БИСов-программ. Поражает другое - чрезвычайная широта функций таких элементов. Ведь эта БИС в зависимости от программы может выполнять широкий круг обязанностей: быть и радиоприемником, и сумматором ЭВМ, и блоком памяти, и даже счетным элементом в наручных электронных часах. Может показаться, что такая избыточная универсальность чрезмерна, что слишком дорого обойдется эта БИС. Но оказывается, что "экономия сырья", или время изготовления, или даже размеры БИС - факторы вторичные; как универсальная, так и частная БИС стоит примерно одинаково. Причина тому - высокая автоматизация процессов изготовления БИС, "многотиражность" партий БИС, их миниатюрность. Таким образом, не изготовить БИС, а спроектировать новую схему есть самое сложное.
Подобная тенденция наблюдается сейчас и в области программирования! Поскольку создание универсальной или частной программы одинаково кропотливый и трудоемкий процесс, то стоит создавать программы для более общих постановок задач, тогда их можно будет использовать гораздо шире. При этом наличие в программе большого числа дополнительных особенностей, не используемых в данный момент, не очень пугает программистов, ведь быстродействие ЭВМ велико, а машинное время сравнительно дешево.
Все это породило и более "гуманное", снисходительное отношение к труду программистов. Сейчас перед ними уже не ставится задача создать программу, использующую память ЭВМ "самым оптимальным образом" или решающую задачу "наикратчайшим путем", что превращало иногда работу над программой в мучительный процесс перебора сотен варинтов алгоритмов решения и размещения исходных данных. При создании программ, особенно одноразового использования, нужно экономить не память и операции машины, а труд людей! Основные критерии программирования в настоящее время - это сроки создания программ, универсальность их функций, доступность широкому кругу пользователей и т.п. Разве не об этом говорит широкое распространение языков программирования и трансляторов, которые призваны помочь как можно быстрее создать программу, пусть и не столь оптимальную по памяти и быстродействию!
Итак, две тенденции - унификация постановок и повышение универсальности программ - приводят программистов к созданию современных пакетов прикладных программ своеобразных универсальных "программных БИС".
Сердце современного пакета - основная решающая программа - это как бы программный "универсальный процессор" пакета. Программа эта предназначена для решения самой общей из класса задач в наиболее универсальной ее постановке. В силу этого она воспринимает данные в специальной стандартной форме, наиболее общей для рассматриваемого класса задач. Для пользователя такая форма задания исходных данных не обязательно окажется самой удобной, напротив, пользователь, не владеющий общей постановкой задачи, вообще не сможет приступить к решению своей задачи по универсальной программе. Это обстоятельство и объясняет тот факт, что почти любой из современных пакетов содержит целую группу программ преобразования данных, вводимых пользователем в стандартную форму, принятую в "основной решающей программе".
Дальнейшее развитие этой тенденции приведет, и сейчас это уже неоспоримо, к тому, что пользователь будет общаться с пакетом (точнее сказать - с ЭВМ, содержащей пакет) на все более привычном ему языке. Причем речь идет не о языке программирования, ведь в пакете все уже запрограммировано заранее, а о так называемом языке заданий. Этот язык может быть языком привычных пользователю бланков, трафаретов, схем и таблиц. Наконец пользователь может вводить информацию световым пером, изображая на экране графическую постановку своей задачи.
Итак, данные задачи введены в ЭВМ, преобразованы специальными программами в стандартную форму, и основной решатель приступил к работе. Можно ли надеяться, что данные, полученные в результате решения, окажутся наглядными и доступными пользователю? Сомнительно, чтобы программа, решающая задачу в общей постановке, выдала результат в доступной для пользователя частной форме. Скорее всего, потребуется преобразование этой информации из универсальной стандартной формы, которую только и может выдать универсальная программа, в форму, привычную для пользователя, доступную для обозрения и использования.
Поэтому следующая и наиболее обширная часть современного пакета программ - это библиотека программ анализа и обработки результатов программ, переводящих результаты решения задачи в удобный для человека вид. Кстати, это и наиболее развивающаяся часть пакета, она все время пополняется, ведь новые задачи возникают в работе пользователей постоянно!
Входят в пакет также разнообразные "стандартные" средства математического обеспечения: "банк данных", операционная система, обеспечивающая режим диалога и коллективного пользования, и другой разнообразный программный сервис.
Итак, аналогия пакета и ЭВМ не оказывается слишком притянутой. Правда, нельзя сказать, что эта "программная ЭВМ" может быть названа особенно универсальной, однако очевидно, что вопрос универсализации пакетов связан скорее с экономической целесообразностью. Во-первых, можно создать как бы "многопроцессорный" пакет, где каждый "процессор" будет предназначен для решения своей группы задач. Кроме того, можно надеяться на все большее обобщение постановок задач. Таким образом, с ростом быстродействия ЭВМ могут возникнуть предпосылки для создания весьма общих универсальных решателей для целых областей знаний.
[1] [2] [3] [4] [5]
Подраздел "Беседы о поколениях ЭВМ"
|
Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как
"Мир ПК" или "Весь Компьютерный Мир". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны.
Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные
издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный,
пусть даже названия фирм здесь и присутствуют (уж без этого никуда).
Ежели появятся какие претензии по оному поводу, прошу
издания связаться со мной
Райво Штулберг |