Основные этапы истории развития ИТ
Попытки автоматизировать процессы обработки информации предпринимались человеком всегда. Как только люди научились считать, они начали придумывать способы автоматизации этого процесса – так появились устройства и приемы для механизации счетных действий, например использование деревянных палочек (бирок), костей, камней, узелков, четок и т.д. От использования в процессе расчетов отдельных неспециализированных предметов люди постепенно перешли к созданию специальных счетных устройств, которые использовались исключительно для счета. Одним из первых таких устройств был абак, или счетная доска[1]. Совершенствование устройств типа абака постепенно привело к появлению одного из самых распространенных (до массового внедрения компьютерной техники) приборов, который также повсеместно использовался для ведения расчетов вплоть до самого последнего времени, – русских счет. И абак, и счеты были очень удобны для выполнения операций сложения и вычитания, однако операции умножения и деления с их помощью выполнять было гораздо сложнее.
Широкое распространение бумаги и приборов для письма на ней (карандашей, ручек и т.д.) привело к развитию техник ведения аналитических подсчетов. Одной из прорывных техник в этой области стало изобретение шотландским математиком Джоном Непером понятия логарифма и конструирование им специального устройства для ведения вычислений, которое называют палочками Непера, а также специальной доски для проведения операций умножения, деления, возведения в квадрат и извлечения квадратного корня в двоичной системе счисления. На основе изобретений Непера другой английский математик, Вильям Отред, изобрел в 1622 г. логарифмическую линейку, которая в XIX–XX вв. стала основным инструментом инженеров.
Все эти устройства были предназначены, в основном, для осуществления разных математических операций над числами и использовались в качестве вспомогательных устройств, которые не могли функционировать без участия человека. Первые устройства, которые были способны выполнять автоматические действия, начали появляться только с началом XVII в. (машина Шиккарда, механическое цифровое вычислительное устройство паскалина французского математика Блеза Паскаля, счетная машина немецкого философа, математика и физика Готфрида Вильгельма Лейбница и др.).
Россия также участвовала в создании специализированных устройств для автоматизации вычислений. Так, из "Переписной книги деловой казны" патриарха Никона (1658) следует, что уже в то время существовало промышленное производство счет, такие "счоты" изготавливались в России для продажи[2]. В середине XIX в. в Российской империи польским изобретателем и математиком еврейского происхождения З. Я. Слонимским было предложено оригинальное счетное устройство, действие которого впервые основывалось не на сложной механике, а на теории чисел. В конце XIX в. в России было уже налажено массовое производство арифмометров (прототипом которых была паскалииа Лейбница), и почти весь XX в. это устройство было преобладающим средством осуществления вычислений.
Считается, что изобретателем первой счетно-вычислительной машины был английский математик Чарльз Бэббидж, который в 1933 г. представил проект универсальной цифровой вычислительной машины – прообраза современной ЭВМ. Бэббидж первым предложил использовать принцип программного управления для автоматического выполнения арифметических вычислений (хотя уже в конце XVIII в. французский изобретатель Жозеф Жаккард предложил ткацкий станок, как теперь принято говорить, с программным управлением, которое осуществлялось с помощью перфокарт). Вычислительная машина Бэббиджа состояла из пяти специализированных блоков: арифметического, запоминающего устройств, устройств управления, ввода и вывода. Для ввода данных и выполнения программы использовались перфокарты.
Интересно, что работы по созданию машины Бэббиджа финансировались дочерью поэта Джорджа Гордона Байрона графиней Адой Лавлейс, которая сама была незаурядным математиком и разрабатывала программное обеспечение для машины Бэббиджа. Признавая заслуги Ады Лавлейс как первого в истории человечества профессионального программиста, ее именем был назван один из языков программирования, который активно разрабатывался в 1980-е гг. – язык ADA.
Поскольку скорость вычислений и в электрических, и в механических счетных машинах была небольшой, ученые начали искать способы ее увеличения; одними из успешных решений этой задачи стали разработки по созданию электронных вычислительных машин, которые были начаты в 30-е гг. XX в. Параллельно с совершенствованием аппаратной базы электронных вычислительных машин шли работы по созданию теории автоматизированных вычислений. Значительный вклад в этой области был сделан американским математиком Аланом Тьюрингом, который в 1936 г. теоретически обосновал возможность построения универсальной цифровой вычислительной машины – абстрактной модели универсальной вычислительной среды, которая получила название "машина Тьюринга". Идеи Тьюринга были подхвачены американским математиком и электротехником Клодом Шенноном, который сумел решить чрезвычайно сложные проблемы технической реализации математических идей Тыоринга и его коллег. Шеннон считается также основателем теории информации, на основных положениях которой строится сегодня вся система высокотехнологичной компьютерной связи.
Синтез теоретической и инженерной мысли оказался очень продуктивным, и в 1946 г. в Университете Пенсильвании в США была представлена научному сообществу первая полностью цифровая электронная вычислительная машина, получившая название ENIAC (от англ. Electronic Numerical Integrator and Computer – электронный числовой интегратор и вычислитель, ЭНИАК). Этот устройство весило 27 т и занимало площадь в 200 м2, однако значимость самого факта его существования и продемонстрированного им рабочего потенциала сложно переоценить – ЭНИЛК доказал возможность построения полностью электронного компьютера, способного работать достаточно продолжительное время, чтобы оправдать затраты на его постройку и принести ощутимые результаты. Кроме того, работавший консультантом проекта ЭНИЛК выдающийся венгеро-американский математик Джон фон Нейман сумел на основе своего опыта участия в проекте сформулировать основные принципы построения архитектуры электронно-вычислительных машин, которые получили название "принципы Неймана". Эти принципы следующие.
1. Принцип программного управления, согласно которому все вычисления производятся путем последовательного выполнения команд программы.
2. Принцип однородности компьютерной памяти означает, что все программы и данные во время выполнения программы хранятся в одном адресном пространстве в оперативной памяти и различаются нс по способу кодирования, а по способу использования.
3. Принцип двоичного кодирования при хранении и обработке данных – отдельные разряды двоичного числа объединяются в более крупные единицы, называемые словами.
4. Принцип адресности – слова данных размещаются в ячейках памяти. Каждая ячейка памяти имеет адрес, по которому происходят запись или считывание слов данных и программ.
Эти принципы, реализованные в последовавшей за ЭНИАК новой ЭВМ, которая получила имя EDVAC (от англ. Electronic Discrete Variable Automatic Computer – электронный автоматический вычислитель с дискретными переменными), были впоследствии дополнены целым рядом новых положений, однако считается, что именно ЭНИЛК стал "прародителем" всех созданных в последующие годы компьютерных устройств (это было отражено на известном дереве компьютеров – схеме Военно-воздушных сил СШЛ, представленной на рис. 3.1.