В настоящее время насчитывается более двух тысяч языков программирования высокого уровня. Большинство этих языков возникло исходя из конкретных требований некоторой предметной области.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Презентация: "Особенности объектно-ориентированных языков"»
Особенностиобъектно-ориентированных языков
Выполнила: Кошелева Софья, МДИ-117
Объектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.
В основе концепции объектно-ориентированного программирования лежит понятие объекта — некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).
Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.
Технология программирования – это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств.
Сущность объектно-ориентированного подхода к программированию
Основные идеи объектно-ориентированного подхода опираются на следующие положения:
программа представляет собой модель некоторого реального процесса, части реального мира;
модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов;
объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект;
взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому.
Свойства объектно-ориентированного языка программирования
1. Абстракции – формальное о качествах или свойствах предмета путем мысленного удаления некоторых частностей или материальных объектов;
2. Инкапсуляции – механизма, связывающего вместе код и данные, которыми он манипулирует, и защищающего их от внешних помех и некорректного использования;
3. Наследования – процесса, с помощью которого один объект приобретает свойства другого, т.е. поддерживается иерархической классификации;
4. Полиморфизма – свойства, позволяющего использовать один и тот же интерфейс для общего класса действий.
Использование одного и того же программного кода с разными данными. Классы позволяют создавать множество объектов, каждый из которых имеет собственные значения атрибутов. Нет потребности вводить множество переменных.
Пространство имен конкретного объекта формируется на основе класса, от которого он был создан, а также от всех родительских классов данного класса. Объект можно представить как некую упаковку данных.
Наследование и полиморфизм позволяют не писать новый код, а настраивать уже существующий, за счет добавления и переопределения атрибутов. Это ведет к сокращению объема исходного кода.
ООП позволяет сократить время на написание исходного кода, однако ООП всегда предполагает большую роль предварительного анализа предметной области, предварительного проектирования. От правильности решений на этом предварительном этапе зависит куда больше, чем от непосредственного написания исходного кода.
Наиболее распространенные объектно-ориентированные языки программирования
Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время.
Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно- ориентированных языков программирования: например, языки CLU, Alphard,Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно- ориентированные языки программирования: C++, Smalltalk, Eiffel и др.
SMALLTALK
Абстракции
Переменные экземпляра
Инкапсуляция
Переменных
Методы экземпляра
Да
Модульность
Разновидности модулей
Закрытые
Методов
Иерархии
Переменные класса
Да
Да
Открытые
Методы класса
Нет
Наследование
Типизация
Да
Параллельность
Сильная типизация
Одиночное
Шаблоны
Нет
Сохраняемость
Метаклассы
Полиморфизм
Нет
Многозадачность
Долгоживущие объекты
Да
Непрямая (посредством классов)
Да (одиночный)
Нет
C++
Абстракции
Переменные экземпляра
Инкапсуляция
Переменных
Методы экземпляра
Да
Модульность
Разновидности модулей
Открытые, защищенные, закрытые
Методов
Иерархии
Переменные класса
Да
Да
Открытые, защищенные, закрытые
Методы класса
Файл
Наследование
Типизация
Да
Параллельность
Сильная типизация
Множественное
Шаблоны
Да
Сохраняемость
Метаклассы
Полиморфизм
Да
Многозадачность
Долгоживущие объекты
Нет
Непрямая (посредством классов)
Да (одиночный)
Нет
COMMON LISP OBJECT SYSTEM (CLOS)
Абстракции
Переменные экземпляра
Инкапсуляция
Переменных
Методы экземпляра
Да
Модульность
Разновидности модулей
Чтение, запись, доступ
Методов
Иерархии
Переменные класса
Да
Да
Открытые
Методы класса
Пакет
Наследование
Типизация
Да
Параллельность
Сильная типизация
Множественное
Шаблоны
Нет
Сохраняемость
Метаклассы
Полиморфизм
Возможна
Многозадачность
Долгоживущие объекты
Да
Да
Да (множественный)
Нет
Object Pascal
Абстракции
Переменные экземпляра
Инкапсуляция
Переменных
Методы экземпляра
Да
Модульность
Разновидности модулей
Открытые
Методов
Иерархии
Переменные класса
Да
Нет
Открытые
Методы класса
Модуль (unit)
Наследование
Типизация
Нет
Параллельность
Сильная типизация
Одиночное
Шаблоны
Нет
Сохраняемость
Метаклассы
Полиморфизм
Да
Многозадачность
Долгоживущие объекты
Нет
Нет
Да (одиночный)
Нет
Заключение
Практически все объектно-ориентированные языки программирования являются развивающимися языками, их стандарты регулярно уточняются и расширяются. Следствием этого развития являются неизбежные различия во входных языках компиляторов различных систем программирования. Наиболее распространенными в настоящее время являются системы программирования Microsoft C++ , Microsoft Visual C++ и системы программирования фирмы Borland International.