Прототипом объектно-ориентированного программирования послужил ряд средств, входящих в состав языка SIMULA-67. Но в самостоятельный стиль оно оформилось с появлением языка SMALLTALK, разработанного Л. Кеем в 1972 году и первоначально предназначенного для реализации функций машинной графики.
В основе объектно-ориентированного стиля программирования лежит понятие объекта, а суть его выражается формулой: "объект = данные + процедуры". Каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных, называемые методами. Объединение данных и процедур в одном объекте называется инкапсуляцией и присуще объектно-ориентированному программированию.
Для описания объектов служат классы. Класс определяет свойства и методы объекта, принадлежащего этому классу. Соответственно, любой объект можно определить как экземпляр класса.
Программирование рассматриваемого стиля заключается в выборе имеющихся или создании новых объектов и организации взаимодействия между ними. При создании новых объектов свойства объектов могут добавляться или наследоваться от объектов-предков. В процессе работы с объектами допускается полиморфизм - возможность использования методов с одинаковыми именами для обработки данных разных типов.
К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.
Язык C++ был разработан в начале 80-х годов Б. Страуструпом, сотрудником лаборатории Bell корпорации AT&T. Им была создана компактная компилирующая система, в которой за основу был взят язык С, дополненный элементами языков BCPL, Simula-67 и Algol-68. К июлю 1983 года появился язык С с классами, а чуть позднее - C++. К 1990 году была выпущена третья версия языка C++, принятая комитетом ANSI в качестве исходного материала для его стандартизации.
В 1990 году сотрудник корпорации Sun Д. Гослинг на основе расширения C++ разработал объектно-ориентированный язык Oak, основным достоинством которого было
51
обеспечение сетевого взаимодействия различных по типу устройств.
Новая интегрируемая в Internet версия языка, получила название Java. Первый броузер, который поддерживал язык Java, разработан программистом корпорации Sun П. Нафтопом и получил название HotJava. С января 1995 года Java получает распространение в Internet.
Согласно официальному определению авторов, Java является простым объектно-ориентированным и архитектурно-нейтральным языком интерпретирующего типа, обеспечивающим надежность, безопасность и переносимость, обладающим высокой производительностью в сочетании с многопоточностьо и динамичностью.
Принципиальной разницей между Java и C++ является то, что первый из них является интерпретируемым, а второй - компилируемым. Синтаксис языков практически полностью совпадает.
С точки зрения возможностей собственно объектно-ориентированных средств язык Java обладает рядом преимуществ перед языком C++. Так, язык Java демонстрирует более гибкую и мощную систему инкапсуляции информации. Механизм наследования, реализованный в Java, обязывает к более строгому подходу к программированию, что улучшает надежность и понимаемость кода. Язык же C++ обладает сложной, неадекватной и трудной для понимания системой наследования. Возможности динамического связывания объектов одинаково хорошо представлены в обоих языках, однако, синтаксическая избыточность C++ заставляет и здесь отдать предпочтение языку Java.
В силу своей конструктивности идеи объектно-ориентированного программирования используются во многих универсальных процедурных языках. Так, например, в состав интегрированной системы программирования на языке PASCAL (корпорации Borland International) версии 5.5 входит специальная библиотека объектно-ориентированного программирования Turbo Vision.
В последнее время многие программы, в особенности объектно-ориентированные, реализуются как системы визуального программирования. Отличительной особенностью таких систем является мощная среда разработки программ из готовых "строительных блоков", позволяющая создать интерфейсную часть программного продукта в диалоговом режиме, практически без кодирования программных операций.
К числу объектно- ориентированных систем визуального программирования относятся: Visual Basic, Delphi, C++ Builder и Visual C++.
52
Контрольные вопросы и упражнения
Что такое информация, сигнал, сообщение, данные? Дайте определение.
Назовите основные формы представления информации.
Что такое количество информации, в каких единицах оно измеряется?
Дайте общую характеристику процессов сбора, обработки и передачи информации.
Как соотносятся понятия "информационная техника" и "информационная технология"?
Что такое архитектура ЭВМ?
Перечислите основные устройства ЭВМ и дайте им краткую характеристику.
Назовите основные технико-эксплуатационные характеристики ЭВМ.
Представьте десятичное число -113 двоичным восьмиразрядным прямым, обратным и дополнительным кодами.
Числа -24.75(10) и 18.625 (10)представьте последовательно в шестиадцатеричной и двоичной системах.Выполните сложение и вычитание этих чисел в обратном и дополнительном кодах. Переведите полученные результаты в десятичную систему счисления.
Запишите свою фамилию, имя, отчество и год рождения в коде ДКОИ.
Дайте классификацию видов ПО.
Что такое алгоритм и какими свойствами он обладает?
Укажите способы описания алгоритмов.
Назовите этапы подготовки и решения задач па ЭВМ.
Что такое компиляция и интерпретация программ?
Охарактеризуйте основные стили программирования.
53
Литература
Аверьянов Г.П., Рошаль А.С. Элементы информатики: Учебное пособие.- М.:МИ-ФИ, 1995. - 175 с.
Богумирский Б.С. Руководство пользователя ПЭВМ: в 2-х частях.-Санкт-Петербург: Ассоциация OILCO, 1992. - 735 с.
ГОСТ 19.002-80 ЕСПД.
ГОСТ 19.003-80 ЕСПД.
Дворкин П.Л. Основы информатики и вычислительной техники: Учебное пособие .- Омск.:ОПИ, 1988.-119с.
Иванов Н. C++ или Java // Мир Internet, № 1,1997. - С. 42-49.
Информатика: Энциклопедический словарь для начинающих/Сост. Д.А. Поспелов - М.: Педагогика - Пресс, 1994. - 352 с.
Компьютерные технологии обработки информации: Учебное пособие / С.В.
Назаров, В.И. Першинов, В.А. Тафинцев и др.; Под ред. С.В. Назарова. - М.: Финансы и статистика, 1995. - 248 с.
Основные понятия информатики и вычислительной техники: Методические материалы. - Новосибирск, 1990. - 123 с.
Основы компьютерной грамоты / А. Н.Жигарев, Н.В. Макарова, М.А. Путинце-ва; Под общ. ред. Н.В. Макаровой. - Л.: Машиностроение, 1987. - 255 с.
Программирование. Учебник под ред. Свердлика А.Н., МО СССР, 1992. - 608 с.
Ростовцев 10. Г. Основы построения автоматизированных систем сбора и обработки информации: Учебник. - СПб.: ВИККА им. А.Ф. Можайского, 1992. - 717 с.
Трудов Ю.В. Основы построения ЭВМ. Часть 1. Теоретические основы, элементы и узлы ЭВМ: Учебное пособие. - Л.: ВИКИ им. А.Ф. Можайского, 1990. - 216 с.
Шафрин Ю.А. Основы компьютерных технологий. Уч. Пособие для 7-11 классов по курсу "Информатика и вычислительная техника". - М.: ABF, 1996. - 560 с.
Шоу А. Логическое проектирование операционных систем: Пер. с англ. - М.: Мир, 1981.-360 с.