К статье КОМПЬЮТЕР
Программное обеспечение представляет собой совокупность компьютерных инструкций. Оно охватывает программы, подпрограммы (разделы программы) и данные. Таким образом, программное обеспечение указывает компьютеру, что делать, как, когда, в какой последовательности и как часто. Нередко программное обеспечение называют просто программой.
Компьютерные программы состоят из перечней команд, которые заставляют компьютер выполнять нужную работу. Компьютер должен получать исчерпывающие конкретные команды. Часто компьютерные программы имеют вид стенограммы.
Концепции программирования. Существуют две большие категории программ: системные и прикладные. Системные программы имеют дело с взаимодействием между различными компонентами компьютера. Например, операционная система Windows представляет собой программу или набор программ, указывающих ЦП, как передавать данные и команды внутри процессора, между внутренней памятью компьютера, накопителем на диске и устройствами ввода-вывода, такими, как терминалы или мониторы на ЭЛТ, принтеры, модемы, датчики и т.п. Она выполняет сервисные функции, такие, как отслеживание места хранения прикладных программ на гибком диске, с которым взаимодействует компьютер. Лучшие системные программы - это программы, которые позволяют компьютеру делать свою работу, не требуя от оператора, чтобы он был с ней знаком.
Прикладная программа представляет собой набор команд для решения внешних задач, отличных от задач основной внутренней работы компьютера. Примером прикладной программы может служить программа обработки текстов или управления базой данных.
Языки. Единственный язык, который понятен компьютеру непосредственно, состоит из нулей и единиц (включено и выключено, да и нет, истинно и ложно), необходимым образом повторенных и упорядоченных. Например, для микропроцессоров серии "Интел" 80Х86 (где Х есть любое число от 1 до 5) приемлемо следующее утверждение: 1000011000000111. Эта двухбайтовая последовательность битов означает команду "Прибавить число 7 к тому, что находится в сумматоре". Сумматор представляет собой регистр в ЦП, который хранит самые последние результаты того, что обрабатывалось. Приведенная последовательность битов, будучи ясной для ЦП, является невыразительной и бессмысленной для обычного человека. Поэтому были изобретены языки, которые переводят утверждения, понятные людям, в биты и обратно. Следующий шаг в уровне абстрагирования - создание языка ассемблера.
На языке ассемблера микропроцессоров "Интел" 80Х86 приведенная выше 16-бит команда выглядит так: ADD 07. Это уже более понятно.
Программы на языке ассемблера обеспечивают наиболее компактную форму команд для достижения нужной цели. Однако текст программы получается очень длинным. Высокоуровневые языки, такие, как Си, Паскаль, Бейсик, Кобол, Фортран, Ява и им подобные, используют больше памяти, чем язык ассемблера, но работать с ними гораздо легче. Когда в 1970-х и 1980-х годах стоимость памяти стала снижаться, а стоимость программиста - повышаться, высокоуровневые языки вышли на доминирующие позиции.
Си - мощный язык, разработанный фирмой Bell Telephone Labs. (США), который позволяет программисту работать с конкретизацией, свойственной языку ассемблера. Он обеспечивает также высокий уровень абстрагирования. В начале 1990-х годов Си стал самым популярным языком коммерческих прикладных программ для персональных компьютеров. Первоначальным важным достоинством Бейсика было то, что он относительно легок для изучения; с тех пор он стал довольно мощным языком. Паскаль, созданный первоначально для обучения методам структурного программирования, также очень популярен среди пользователей персональных компьютеров. Вариантом Паскаля является Модула-2; оба языка разработаны Н.Виртом. Существует ряд других высокоуровневых языков, каждый из которых наиболее приспособлен для того или иного типа задач. Кобол предназначался главным образом для бизнеса; особенно хорош он для обработки больших файлов, таких, как инвентаризационные и платежные ведомости. Фортран является основным компьютерным языком ученых и инженеров; он специализируется на математических формулах и сложных вычислениях. Разработка языка Ада финансировалась Министерством обороны США. Лисп и Пролог являются основными языками исследований в области искусственного интеллекта. Лого отпочковался от Лиспа и служит для разработки методов обучения с помощью компьютеров.
Все высокоуровневые языки, включая упомянутые выше, являются процедурными языками, т.е. они выдают компьютеру подробные пошаговые команды. Другая группа высокоуровневых языков относится к объектно-ориентированным. Объектно-ориентированное программирование (ООП) сосредоточивается на разбиении общих процессов на модули и объединении последних в блоки, которые могут использоваться повторно для разнообразных функций. Каждый объект программы имеет точно определенные поведение и набор характеристик. Каждый объект реагирует на сообщения от других объектов заранее заданным образом. Детали такой реакции включены в объектный код и "невидимы" остальным объектам. Например, чтобы начертить рамку на экране дисплея в процедурном языке, программист должен написать команды, подробно расписывающие процесс вычерчивания от начальной точки к каждой последующей, указывая, какие точки экрана должны высвечиваться. В объектно-ориентированном языке программист просто пишет команду, по которой вычерчивается рамка данного размера в определенном месте. Примерами языков ООП могут служить Смоллток, Эктор, Си++ и версии Турбо Паскаля.
Компьютерное программирование - кропотливая работа. По этой причине среди программистов приложений популярно программирование меню, или пользовательское программирование. Малоопытный программист может выбрать такой язык, как Бейсик (этот язык предпочитают непрофессиональные программисты), для подробной структуры программы, но части программы, которые видит оператор, будут появляться на естественном языке, например английском или русском. При выполнении программы оператор выбирает из меню нужный вариант. Выбранная альтернатива может вызвать изображение другого набора альтернатив, одна из которых должна быть выбрана и т.д.
С повышением популярности персональных компьютеров значительное число более традиционных прикладных программ должно записываться в менюподобном или ориентированном на пользователя формате. Упор в программном обеспечении будет делаться на создании максимально ясного и дружелюбного интерфейса человек - машина. Один частный аспект этого исследования заслуживает особого внимания.
Беспрограммное программное обеспечение. Расширение производства и применения персональных компьютеров существенно ускорило разработку т.н. беспрограммного программного обеспечения. В этом случае пользователь может посредством управляющих элементов компьютера взаимодействовать с дисплеем, изображающим логическую или визуальную структуру некоторого вида. Пользователь может ввести с клавиатуры в любой точке дисплея необходимую информацию, а затем перейти к следующей точке. Эта структура может использоваться многократно (если необходимо, каждый раз с другими данными). Чтобы работать в такой программе, от пользователя не требуется знать что-либо о программировании. Многие программы электронных таблиц и баз данных обладают указанными беспрограммными характеристиками. Основные средства организации запросов в больших базах данных универсальных компьютеров базируются на SQL (язык структурированных запросов, "эскьюэль"), в котором пользователь запрашивает информацию из базы данных, используя синтаксис, во многом похожий на обычный английский. Стало популярным связывать SQL с базами данных персональных компьютеров.
Графические интерфейсы пользователя (ГИП). Компьютерные дисплеи прошли эволюцию от изображения, основанного на знаках, к экстенсивной растровой графике. Это развитие облегчило разработку программ - особенно операционных систем, включая графику и разнообразные изобразительные методы. Многие программы могут быть выведены на экран, а прикладные программы могут выполняться одновременно. Серия компьютеров "Макинтош", выпускаемых фирмой "Эппл" (США), положила начало широкому распространению ГИП для персональных компьютеров. Программы системы Windows (фирмы "Майкрософт", США), OS/2 Presentation Manager (фирмы ИБМ, США), New Wave (фирмы "Хьюлетт-Паккард", США) и большая часть программных средств для дисплеев рабочих станций используют ГИП и ООП.