поддержка
проекта:
разместите на своей странице нашу кнопку!И мы
разместим на нашей странице Вашу кнопку или ссылку. Заявку прислать на
e-mail
код нашей кнопки:
Программирование
Современные компьютеры выросли из простейших арифмометров, массовый
выпуск которых начался в начале нашего века. Эти механические приборы
помогали совершать простейшие арифметические операции. Совершенствуясь,
они сначала превратились в электромеханические клавишные вычислительные
машины, а с приходом микроэлектроники - в хорошо известные нам карманные
калькуляторы. Со временем кроме арифметических действий им стали
доступны и другие операции: извлечение квадратного корня и вычисление
логарифмов, нахождение значений тригонометрических функций. В этих
устройствах появилась память для хранения промежуточных результатов, а
также ряд других вспомогательных блоков, упрощающих пользование ими при
решении задач.
В микрокалькуляторах все нужные операции выполняются с помощью
специализированных схем. Другими словами, все операции в них проводятся
за счет аппаратной реализации. Хорошо это или плохо? С одной стороны,
аппаратная реализация надежна, операции выполняются безошибочно,
скорость работы калькуляторов определяется лишь скоростями прохождения
сигналов в микросхемах, которые весьма велики, что обеспечивает большую
их производительность. Но, с другой стороны, специализация устройств
подобного рода весьма жесткая. Они могут делать только то, что
зафиксировано в их конструкции. Если перед человеком стоит задача,
решение которой требует вычислений функций, которыми не умеет
манипулировать калькулятор, то от его услуг придется отказаться и делать
вычисления самому.
Если проводить (правда, весьма поверхностную) аналогию развития
электронных вычислительных машин с биологической эволюцией, то ветвь,
которую представляют калькуляторы, можно уподобить ветви биологической
эволюции, приведшей к возникновению насекомых. Специализация у насекомых
весьма высока, а заложенные в них природой программы действий могут
привести отдельных представителей этого вида к гибели, если вдруг
возникнет необычная ситуация. Насекомое все равно будет реализовывать ту
жесткую программу, которая "зашита" в ее генной структуре.
В биологической эволюции такое направление, связанное с жесткой
направленностью на определенные действия в фиксированной ситуации, по-ви-
димому, не было продуктивным. Продуктивным оказалось другое направление,
когда появились существа, способные приспосабливаться к любым ситуациям.
Адаптация означает, что организм обладает средствами строить программы
целесообразного поведения в среде, используя специальные механизмы,
основанные на знаниях, которые нельзя заранее заложить в структуру
организма. Это направление привело к созданию гуманоидов, а затем и
человека. Человек - единственное биологическое существо, которое не
только адаптируется практически к любой среде, но и создает
искусственную среду, в которой он может существовать наиболее
благоприятно.
В эволюции вычислительных машин имеется аналогичный пример. Начиная с
архитектуры ЭВМ, предложенной Дж. фон Нейманом, вычислительные машины
были снабжены программами, которые могли изменяться в зависимости от
решаемой задачи. Отделение программ от конструкции, от аппаратной
реализации было огромным шагом вперед, позволившим сделать
вычислительные машины универсальными, способными реализовать любую
процедуру, записанную в виде алгоритма.
С этого момента произошло разделение вычислительных машин на две части:
аппаратную (ее часто называют хардвером, от английского hard-were -
"жесткий товар") и программную (которую часто именуют софтвером, от
английского soft-were - "мягкий товар"). В русской терминологии софтвер
получил название программного обеспечения.
С самого начала стало ясно, что программное обеспечение делится на две
части. Одна часть - это комплекс программных средств, предназначенных
для того, чтобы на вычислительной машине можно было организовать
выполнение программ. Вторая - множество тех программ, которые нацелены
на решение конкретных задач. Эти две части программного обеспечения
принято соответственно называть системными программами и прикладными
программами.
Расскажем о системных программах. Ядро их составляют программы, входящие
в базовые операционные системы компьютеров. Основная задача таких
программ - планирование вычислительного процесса, распоряжение ресурсами
машины, организация взаимодействия отдельных процессов, протекающих в
машине во время выполнения программ. К этим программам примыкают
программные системы, обеспечивающие отображение информации в удобном для
пользователя виде (например, на дисплее), диалоговые программы для
общения на ограниченном естественном языке, а также системы трансляции,
обеспечивающие перевод программ, записанных на языках программирования
высокого уровня, на язык, понятный машине.
Другой комплекс служебных программ - всевозможные сервисные программы:
текстовые и графические редакторы, отладчики, диагностические программы,
программы для борьбы с компьютерными вирусами и другие вспомогательные
программы. Эти программы облегчают пользователю взаимодействие с
вычислительной машиной.