Счетные приборы
Самыми древними приборами для облегчения счета и вычислений были человеческая рука и камешки. Благодаря счету на пальцах возникли пятиричная и десятиричная (десятичная) системы счисления. Верно подмечено ученым математиком Н.Н. Лузиным, что «преимущества десятичной системы не математические, а зоологические. Если бы у нас на руках было не десять пальцев, а восемь, то человечество пользовалось бы восьмиричной системой».
В практической деятельности при счете предметов люди использовали камушки, бирки с зарубками, веревки с узелками и др. Первым и более усовершенствованным устройством, специально предназначенным для вычислений, был простой абак, с которого и началось развитие вычислительной техники. Счет с помощью абака, известный уже в Китае, Древнем Египте и Древней Греции задолго до нашей эры, просуществовал многие тысячелетия, когда на смену абаку пришли письменные вычисления. При этом следует заметить, что абак служил не столько для облегчения собственно вычислений, сколько для запоминания промежуточных результатов.
Известно несколько разновидностей абака: греческий, который был выполнен в виде глиняной дощечки, на которой твердым предметом проводили линии и в получившиеся углубления (бороздки) клали камешки. Еще более простым был римский абак, на котором камешки могли передвигаться не по желобам, а просто по линиям, нанесенным на доске.
В Китае похожий на абак прибор называли суан-пан, а в Японии - соробан. Основой для этих приборов были шарики, нанизанные на прутики; счетные таблицы, состоящие из горизонтальных линий, соответствующих единицам, десяткам, сотням и т.д., и вертикальных, предназначенных для отдельных слагаемых и сомножителей. На эти линии выкладывались жетоны - до четырех.
У наших предков тоже был абак - русские счеты. Они появились в XVI-XVII вв., ими пользуются и в наши дни. Основная заслуга изобретателей абака состоит в использовании позиционной системы счисления.
Следующим важным этапом в развитии вычислительной техники было создание суммирующих машин и арифмометров. Такие машины были сконструированы независимо друг от друга разными изобретателями.
В рукописях итальянского ученого Леонардо да Винчи (1452-1519) имеется эскиз 13-разрядного суммирующего устройства. Немецким ученым В. Шикардом (1592-1636) был разработан 6-разрядный эскиз, а сама машина была построена примерно в 1623 году. Следует отметить, что эти изобретения стали известны только в середине XX в., поэтому никакого влияния на развитие вычислительной техники они не оказали. Считалось, что первую суммирующую машину (8-разрядную) сконструировал в 1641 году, а построил в 1645 году Б. Паскаль. По этому проекту было налажено их серийное производство. Несколько экземпляров этих машин сохранилось до наших дней. Достоинством их было то, что они позволяли выполнять все четыре арифметических действия: сложение, вычитание, умножение и деление.
Под термином «вычислительная техника» понимают совокупность технических систем, т.е. вычислительных машин, математических средств, методов и приемов, используемых для облегчения и ускорения решения трудоемких задач, связанных с обработкой информации (вычислениями), а также отрасль техники, занимающейся разработкой и эксплуатацией вычислительных машин. Основные функциональные элементы современных вычислительных машин, или компьютеров, выполнены на электронных приборах, поэтому их называют электронными вычислительными машинами - ЭВМ. По способу представления информации вычислительные машины делят на три группы;
- аналоговые вычислительные машины (АВМ), в которых информация представляется в виде непрерывно изменяющихся переменных, выраженных какими-либо физическими величинами;
- цифровые вычислительные машины (ЦВМ), в которых информация представляется в виде дискретных значений переменных (чисел), выраженных комбинацией дискретных значений какой-либо физической величины (цифры);
- гибридные вычислительные машины (ГВМ), в которых используются оба способа представления информации.
Первое аналоговое вычислительное устройство появилось в XVII в. Это была логарифмическая линейка.
В XVIII-XIX вв. продолжалось совершенствование механических арифмометров с электрическим приводом. Это усовершенствование носило чисто механический характер и с переходом на электронику утратило свое значение. Исключение составляют лишь машины английского ученого Ч. Бебиджа: разностные (1822 г.) и аналитические (1830 г.).
Разностная машина предназначалась для табулирования многочленов и с современной точки зрения была специализированной вычислительной машиной с фиксированной (жесткой) программой. Машина имела «память» - несколько регистров для хранения чисел. При выполнении заданного числа шагов вычислений срабатывал счетчик числа операций - раздавался звонок. Результаты выводились на печать - печатающее устройство. Причем по времени эта операция совмещалась с вычислениями.
При работе над разностной машиной Ч. Бебидж пришел к идее создания цифровой вычислительной машины для выполнения разнообразных научных и технических расчетов. Работая автоматически, эта машина выполняла заданную программу. Автор назвал эту машину аналитической. Данная машина - прообраз современных ЭВМ. Аналитическая машина Ч. Бебиджа включала в себя следующие устройства:
- для хранения цифровой информации (теперь это называется запоминающим устройством);
- для выполнения операций над числами (теперь это арифметическое устройство);
- устройство, для которого Ч. Бебидж не придумал названия и которое управляло последовательностью действий машины (сейчас это устройство управления);
- для ввода и вывода информации.
В качестве носителей информации при вводе и выводе Ч. Бебидж предполагал использовать перфорированные карточки (перфокарты) типа тех, которые применяются в управлении ткацким станком. Ч. Бебидж предусмотрел ввод в машину таблиц значений функций с контролем. Выходная информация могла печататься, а также пробиваться на перфокартах, что давало возможность при необходимости снова вводить ее в машину.
Таким образом, аналитическая машина Ч. Бебиджа была первой в мире программно-управляемой вычислительной машиной. Для этой машины были составлены и первые в мире программы. Первым программистом была дочь английского поэта Байрона - Августа Ада Лавлейс (1815-1852). В ее честь один из современных языков программирования называется «Ада».
Первой электронно-вычислительной машиной принято считать машину, разработанную в Пенсинвальском университете США. Эта машина ЭНИАК была построена в 1945 году, имела автоматическое программное управление. Недостатком этой машины было отсутствие запоминающего устройства для хранения команд.
Первой ЭВМ, обладающей всеми компонентами современных машин, была английская машина ЭДСАК, построенная в 1949 году в Кембриджском университете. В запоминающем устройстве этой машины размещаются числа (записанные в двоичном коде) и сама программа. Благодаря числовой форме записи команд программы машина может производить различные операции.
Под руководством С.А. Лебедева (1902-1974) была разработана первая отечественная ЭВМ (электронная вычислительная машина). МЭСМ выполняла всего 12 команд, номинальная скорость действий - 50 операций в секунду. Оперативная память МЭСМ могла хранить 31 семнадцатиразрядное двоичное число и 64 двадцатиразрядные команды. Кроме этого, имелись внешние запоминающие устройства. В 1966 году под руководством этого же конструктора была разработана большая электронно-счетная машина (БЭСМ).
Электронно-вычислительные машины используют различные языки программирования - это система обозначений для описания данных информации и программ (алгоритмов).
Программа на машинном языке имеет вид таблицы из цифр, каждая ее строчка соответствует одному оператору - машинной команде. При этом в команде, например, первые несколько цифр являются кодом операции, т.е. указывают машине, что надо делать (складывать, умножать и т.д.), а остальные цифры указывают, где именно в памяти машины находятся нужные числа (слагаемые, сомножители) и где следует запомнить результат операций (сумму произведений и т.д.).
Язык программирования задается тремя компонентами: алфавитом, синтаксисом и семантикой.
Большинство языков программирования (БЕЙСИК, ФОРТРАН, ПАСКАЛЬ, АДА, КОБОЛ, ЛИСП), разработанных к настоящему времени, являются последовательными. Программы, написанные на них, представляют собой последовательность приказов (инструкций). Они последовательно, один за другим, обрабатываются на машине при помощи так называемых трансляторов.
Производительность вычислительных машин будет повышаться за счет параллельного (одновременного) выполнения операций, тогда как большинство существующих языков программирования рассчитано на последовательное выполнение операций. Поэтому будущее, видимо, за такими языками программирования, которые позволят описывать саму решаемую задачу, а не последовательность выполнения операторов.