Этапы развития ПО

ЭВМ

В Советском Союзе в 30-50-е гг. 20 в. проблематика ВТ и ПО была под государственным запретом, как "буржуазная лженаука" (наряду с кибернетикой, генетикой и др.). Поэтому компьютер в нашей стране появился с некоторой задержкой относительно Запада, тем более что из-за запрета ученым и инженерам, увлеченным идеей компьютера, приходилось работать в полуподпольных лабораториях, прикрывавшихся "пристойными" (по государственным меркам) вывесками. Слово "компьютер" отдавало заграницей, к которой в ту пору относились подозрительно в нашей стране, живущей за "железным занавесом". Поэтому для обозначения новой техники стали использовать более привычное "советскому человеку" название "электронная вычислительная машина" (ЭВМ).

Работа над первой отечественной ЭВМ началась в 1947 г. под руководством С.А. Лебедева, а создана она была в начале 50-х гг. под названием МЭСМ (малая электронная счетная машина). В начале 60-х гг. появилась БЭСМ-1 (руководитель разработки все тот же С.А. Лебедев), затем последовательно БЭСМ-2, М-20, БЭСМ-3, БЭСМ-4, М-220, М-222, БЭСМ-6 и др. Созданные в СССР ЭВМ были не хуже западных компьютеров, а по многим параметрам даже превосходили их. Но затем по ряду обстоятельств (в основном, экономического характера) был взят курс на свертывание производства отечественных ЭВМ, копирование западных компьютеров в виде единой серии ЭВМ (ЕС ЭВМ). До сих пор практика копирования и закупки зарубежных образцов ВТ и ПО продолжается нам же самим в ущерб. "Догнать и перегнать Запад", как того требовала власть, при такой стратегии развития ВТ и ПО оказалось не под силу в 20 в., будет невозможно и впредь, если не развивать собственное производство.

Поколения компьютеров (ЭВМ)

Поколения компьютеров, как и поколения людей, пересекаются во времени – в одно и то же время существуют компьютеры – "дедушки", "дети" и "внуки". Время жизни одного поколения компьютеров – примерно 20 лет. За время от создания компьютеров 1-го поколения до настоящего времени можно говорить о шести поколениях (по некоторым данным – о пяти). Вот эти поколения:

Таблица 1. Поколения компьютеров (ЭВМ)
Поколение(№, годы) Элементная база Программное обеспечение Данные Интерфейс Типы компьютеров
1, 40-60 гг. 20 в. ЭВП (электровакуумные приборы) Двоичный код,мнемокод Двоичные числа Командный (коммутируемая программа) Уникальные ЭВМ коллективного пользования
2, 50-70 гг. Транзисторы (полупроводники), микросборки Мнемокод, ассемблер, алгоритмические языки; операционные системы (ОС) Двоичные, десятичные числа Командный (хранимая программа) Уникальные ЭВМ, мини-ЭВМ
3, 60-80 гг. ИС (интегральные схемы), БИС (большие ИС) ОС, алгоритмические языки, ассемблер, библиотеки программ Числа и тексты Командный (хранимая программа) Серии ЭВМ, мини-ЭВМ, микро-ЭВМ
4, 70-90 гг. МП (микропроцессор), СБИС (сверхбольшие ИС) ОС, алгоритмические языки, ассемблер, ППП(пакеты прикладных программ), сети, утилиты Числа, тексты, графика WIMP (графический: W – Window I – Image M – Menu P – Pointer) ПК (персональный компьютер), суперкомпьютер, графическая станция, сетевой компьютер
5, 80 -2000 гг. Несколько МП("многоядерный" компьютер), СБИС, оптоэлектроника ОС, ППП, ИТ(информационные технологии), сети, утилиты, искусственный интеллект, мультимедиа Любые данные, включая изображения, анимацию, звук; базы данных WIMP ПК разных модификаций, суперкомпьютеры, интеллектуальные терминалы
6, 90 гг. -? Оптоэлектроника, биомолекулы, квантовая техника Сети, искусственный интеллект, мультимедиа, квантовые алгоритмы Любые данные, знания; базы знаний SILK (S – Speech I – Image L – Language K – Knowledge) Типаж не определен

Таким образом, поколения компьютеров отличаются друг от друга элементной базой, программным обеспечением, используемыми данными, интерфейсом и типажом компьютеров. Эти признаки являются основными, но можно использовать (в дополнение к ним) и другие признаки, более тонкие (например, выполняемые функции, подключаемые периферийные устройства, потребляемая мощность и др.).

Как следует из таблицы 1, программное обеспечение начиналось с представления команд и данных в машинном коде, каким до настоящего времени является двоичный код. Это не значит, что двоичный код оптимален во всех смыслах, но он оказался наиболее простым и надежным для импульсных устройств компьютера, что совсем немаловажно. Поэтому двоичный код и используется в качестве языка, понятного компьютеру (в алфавите кода всего два символа – 0 и 1, из которых, тем не менее, комбинируются любые закодированные "машинные слова").

Но двоичный язык непонятен подавляющему большинству людей. Поэтому двоичные команды стали представлять в более "читабельном" (для человека-программиста) буквенно-цифровом виде3). Так появился мнемокод.

В компьютерах 2-го поколения микрокоманды стали объединять в блоки – ассемблировать (собирать). Появился ассемблер (сборщик). Двоичный код, мнемокод, ассемблер – это машиннозависимые языки. Их достоинство – ориентируясь на систему команд и адресации конкретной машины, эти языки максимально используют возможности данной машины. Но чтобы использовать машиннозависимую программу на другой машине, надо быть уверенным, что система команд и адресации на второй машине абсолютно такая же, как и на первой машине. Если это не так, программа не сработает – ее надо адаптировать под другую машину (эмулировать).

Поэтому появились алгоритмические машиннонезависимые языки. Программы, написанные на этих языках, работали на любой машине, где можно было использовать транслятор (переводчик) с алгоритмического языка в двоичный код машины. Достоинство алгоритмического языка – в его универсальности; программисту не нужно знать досконально систему команд и адресации конкретных компьютеров – достаточно знать язык. Платой за такую универсальность (машиннонезависимость) программ стало неполное использование возможностей конкретного компьютера. Сознавая это, разработчики ПО, наряду с алгоритмическими языками и их трансляторами, оставили ассемблеры в составе ПО, исходя из потребностей тех программистов, которые писали наиболее эффективные программы для конкретных машин (кстати, для ассемблера тоже нужен транслятор). Первым алгоритмическим языком считается Fortran (Formula Translator) – 1954 г. После Фортрана были Algol-60 (1960 г.), BASIC (1964 г.) и др. В 1970 г. появились Pascal, С.

Алгоритмические языки называют также языками высокого уровня, т. к. они близки к человеческой речи (в отличие от машиннозависимых языков низкого уровня). Международный язык программирования – английский как исторически обусловленная дань уважения к англо-американским "пионерам" программирования.

Системы программирования на разных языках и трансляторы, изобретение периферийных и новых системных аппаратных средств потребовали диспетчеризации – комплексного управления аппаратурой и программным обеспечением. Так в компьютерах 2-го поколения появились первые операционные системы (ОС), предназначенные для диспетчерских функций. Появились автономные утилиты – вспомогательные (служебные) программы управления, но не в составе ОС, а отдельно от нее. В отличие от ОС, поставляемой централизованно, автономные утилиты приобретались индивидуально – по желанию пользователя, по необходимости.

Стандартные программы, часто используемые для решения сходных задач, например, в вычислительной (прикладной) математике, стали объединять в библиотеки программ, распространяемые подобно книжным изданиям, затем в пакеты прикладных программ (ППП), поставляемые централизованно вместе с приобретением компьютера (3, 4 поколения).

С распространением ПК и прочих мобильных компьютеров стало заманчивой идеей объединить их в миниатюрные цифровые системы связи, тем более что сетевые технологии уже были известны с 60-х гг. 20 в. (вначале они назывались многотерминальными и многомашинными комплексами; сеть ARPA, от которой произошел Интернет, начала эксплуатироваться в 1969 г.)

Так в компьютеры 4-го поколения были внедрены локальные, а затем и глобальные сетевые технологии, потребовавшие как аппаратного, так и программного обеспечения. Все последующие поколения компьютеров уже не мыслятся вне сетей. Можно провести аналогию с человеческим обществом: когда-то люди, если и перемещались в пространстве, то на небольшие расстояния. Но затем, с появлением транспортных средств и транспортных сетей люди стали перемещаться чуть ли не по всему земному шару, а "домоседы" – это скорее исключение, чем правило. Аналогично автономные компьютеры – чаще всего, "домоседы", хотя и существуют давно "домовые" сети.

Наконец, на современном этапе появились информационные технологии и системы искусственного интеллекта. Информационная технология – это программно-технический комплекс, предназначенный для обработки информации (в широком смысле). Можно считать, что информационная технология в своей программной части есть осовремененное название прежних ППП и библиотек программ. Границы между ними весьма условны. Например, Microsoft Office, с одной стороны, можно назвать пакетом прикладных программ, в котором, действительно, собраны разные стандартные программы – текстовые и графические редакторы, табличный процессор и СУБД, мастер презентаций и органайзер. В свою очередь, каждая из этих программ на самом деле содержит комплекс (под)программ и может считаться самостоятельным пакетом. С другой стороны, указанный комплекс программ предназначен для обработки любой информации, используемой в офисах, и поэтому вполне обоснованно может считаться офисной информационной технологией MS Office, поставляемой с компьютерами типа IBM PC (информационная технология "MS Office – IBM РС").

Программное обеспечение, известное как "искусственный интеллект", сегодня, что называется, "на слуху", но возникло оно гораздо раньше. Многие ОС прошлого выполняли весьма интеллектуальные операции с файловой системой и хранимыми программами. Искусственный интеллект, согласно многим экспертным оценкам, составит ядро будущего ПО. История и проблемы развития искусственного интеллекта заслуживают отдельного рассмотрения (см. лекцию 4).

Программное обеспечение нейрокомпьютеров, биокомпьютеров и квантовых компьютеров, которые, по прогнозам, будут реализованы в обозримом будущем, пока не вышло из стадии исследований, опытных образцов и даже идей. Реально о его внедрении можно говорить лишь с появлением серийных аппаратно-программных средств. А между опытными образцами и серией – дистанция огромного размера.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: