Компьютер представляет собой устройство для хранения и переработкиинформации. Информация же, как правило, описывает тот или иной реальный объект, существующий независимо от компьютера. Описание объекта называется абстракцией (Рис. 1.1).
Рис. 4.1. Компьютер работает с абстракциями реального мира.
Часто вместо более общего понятия информации приходится слышать такой термин, как данные.
Данные – это упрощенноепредставление реальных явлений.
Следует отметить, что, скажем, чертеж звездолета или текст фантастического романа с точки зрения обработки данных – вполне реальные объекты. Под реальностью в данном случае понимается не смысловое содержание информации, а то, что она описывает реально существующие объекты. В рассматриваемом примере компьютер воспринимает не чертеж звездолета, а набор координат отрезков и дуг, из которых этот чертеж состоит, не текст романа, а набор кодов букв и т.д. Понимать смысл информации машины пока не научились.
Почему данные всегда упрощают описание реального объекта? Потому что учесть все свойства объекта не только невозможно, но и не нужно. Представьте себе, что вам нужно рассчитать силу, с которой Земля притягивает гирю массы m. Если не прибегать к упрощению, то нужно будет учесть и нерегулярность формы самой Земли, а также силы притяжения Солнца, планет, всех звезд во Вселенной – явно абсурдная задача. Поэтому нужно вовремя остановиться и выделить в огромном массиве информации те и только те данные, которые нам нужны.
Абстрагирование– удаление несущественной информации.
Пусть необходимо создать базу данных студентов университета. Очевидно, что для функционирования учебного заведения важно знать фамилию, имя, отчество студента, учебную группу, год поступления, оценки (от них же зависит стипендия!). А вот рост, цвет глаз, вес студентов декану или зав. кафедрой совершенно не интересны (Рис. 1.2). К тому же на их хранение и обработку будут тратиться лишняя память и время компьютеров.
Рис. 4.2. Необходимая и избыточная информация.
Таким образом, уровень абстрагирования зависит от:
a. Решаемой задачи.
b. Возможностей аппаратного и программного обеспечения.
Второе ограничение говорит о том, что в ряде случаев технические возможности имеющейся техники не позволяют решить в принципе поддающиеся решению задачи. Например, на производстве ежедневно решаются задачи оптимизации раскроя листовых материалов. Нахождение оптимального размещения деталей, особенно криволинейных, на листе – очень сложная задача, требующая огромного объема вычислений. Если имеющийся компьютер работает слишком медленно, карта раскроя не будет получена до начала следующей смены и задача, в принципе решаемая, решена не будет.
Если мы рассмотрим тот или иной язык программирования, то мы увидим, что и в нем присутствуют абстракции. В языках программирования высокого уровня предусмотрены абстракции для чисел, текстовых строк, логических значений и пр. Вспомним Паскаль:
VAR a:REAL; b:INTEGER; c:STRING;
Переменнаяв программе – не что иное, как абстрактное представление свойства реального объекта.