Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Основные свойства объектно-ориентированных языков программирования




История развития языков программирования

Первые программы заключались в установке ключевых переключателей на передней панели вычислительного устройства. Очевидно, таким способом можно было составить только небольшие программы.

С развитием компьютерной техники появился машинный язык, с помощью которого программист мог задавать команды, оперируя с ячейками памяти, полностью используя возможности машины. Однако использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Поэтому от его использования пришлось отказаться.

На протяжении 60-х годов запросы на разработку программного обеспечения возросли и программы стали очень большими. Это привело к тому, что было разработано структурное программирование. С развитием структурного программирования следующим достижением были процедуры и функции. Общий код программы в данном случае становится меньше. Функции позволяют создавать модульные программы.

Следующим достижением было использование структур, благодаря которым перешли к классам. Структуры — это составные типы данных, построенные с использованием других типов Класс — это структура, которая имеет свои переменные и функции, которые работают с этими переменными. Это было очень большое достижение в области программирования.

В случае, когда нужно иметь эффективную программу, вместо машинных языков используются близкие к ним машинно-ориентированные языки —ассемблеры. Люди используют мнемонические команды взамен машинных команд.

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.

В 1954 году, когда был создан первый язык высокого уровня — Фортран. Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования, таких как Алгол(1958), Паскаль(1970),Си(1972).

Также создавались функциональные языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog —англ. PROgramming in LOGic, 1972).

в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.

Примерами объектно-ориентированных языков являются Object Pascal, C++, Java и др.

ООП позволяет оптимально организовывать программы, разбивая проблему на составные части, и работая с каждой по отдельности. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче.


 

Основные свойства объектно-ориентированных языков программирования

Основными свойствами ООП являются:

Инкапсуляция-объединение данных с функциями их разработки в сочетании со скрытием ненужной для использования этих данных информацией

Наследование-это возможность создания иерархии классов, когда потомки наследуют все св-ва своих предков и могут их изменять и добавлять новые.

Полиморфизм-возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы

3. История развития С++

Язык программирования С++ разработан в начале 80-ых годов (1983 г.) сотрудником AT&T Bell Laboratories Бьерном Страуструпом. Основой для его создания послужил процедурно-ориентированный язык системного программирования С, позволяющий разрабатывать эффективные модульные программы решения широкого класса научно-технических задач. Эффективность написанных на языке С программ обусловлена возможностью учета в ней архитектурных и аппаратных особенностей ЭВМ, на которой программа реализуется. При создании С++ использовались определенные концепции языков Симула-67 и Ангол-68 и преследовались следующие цели:

1. Обеспечить поддержку абстрактных (определяемых пользователем) типов данных

2. Предоставить средства для объектно-ориентированного программирования

3. Улучшить существующие конструкции языка С.

В программе, написанной на языке С++, у программиста появилась возможность создания собственных типов данных на базе уже существующих. Их использование существенно облегчает обработку сложных структурных данных.

Первые версии языка программирования Си++ были разработаны в начале 80-х годов Бьярном Страуструпом. По признанию самого автора языка, Си++ никогда не разрабатывался на бумаге. Проектирование, реализация и документирование новых возможностей происходили фактически одновременно.
За основу был взят популярный в среде профессиональных разработчиков язык программирования Си. Первыми средствами, которыми был расширен Си, стали средства поддержки абстракций данных и объектно-ориентированного программирования.
Описание нового языка не было опубликовано сразу. Первыми его пользователями стали сами сотрудники Bell Labs. В 1993 впервые была реализована коммерческий транслятор, и сам язык был назван "С.
Первым транслятором языка был препроцессор cfront, транслирующий программу на Си++ в эквивалентную программу на Си. И только в конце 80-х годов были реализованы прямые трансляторы, не использующие Си в качестве промежуточного языка. Пионером среди таких трансляторов стал GNU CC.
Если не считать документацию к транслятору cfront, первой книгой с описанием языка стала "The C++ Programming Language" (Addison-Wesley, 1985), переведенная на русский язык и изданная в 1991 году.
С этого момента началось его бурное распространение и создание многочисленных реализаций.
Модель реализации ООП была частично позаимствована из языка программирования Simula67 и ориентировалась в основном на возможность эффективной реализации на вычислительных машинах со стандартной архитектурой. C 1985 года в язык были введены новые возможности: множественное и виртуальное наследование, шаблоны функций и классов, обработка исключительных ситуаций. Кардинально изменена семантика совместного использования оператора new, изменен синтаксис для вложенных классов.

 


 

4. С++ как улучшение Си. Комментарии. Константы. Встраиваемые функции. Объявление структур, объединений и перечислений. Объявления переменных

 

1. Комментарии (/* ---- */) в С++ появился // и считается законченным окончанием строки.

2. Константы. Можно задавать без знаковые константы. Также ужесточилось действие ключевого слова const. Теперь целые константы, описанные словом const могут использоваться для описания размеров массива. Константы в С++ подчиняются тем же правилам видимости, что и переменные.

12u[u] – без знаковая константа

12 – знаковая неименованная константа

//константы double

const double PI=3.14;

const double E=2.8;

//указатель на константу

const double *ptoconst=Π

//константный указатель

double *const constpconst=&E;

//константы на указатель на константу

const double *const constpconst=Π

*ptoconst=2.5; //ошибка. Значение по указателю менять нельзя

ptoconst=Π // правильно

constp=&E; //ошибка

*constp+=3.0;

Встраиваемые функции

В Си++ введено слово inline, означающее рекомендацию компилятору сделать функцию встраиваемой, то есть вместо генерации вызывающего её кода подставлять непосредственно её тело. Помимо "рекомендации", стандарт закрепляет за словом inline требование (следовательно, и разрешение) описывать функцию в каждой единице трансляции, в которой она используется, что, собственно, и играет ключевую роль в вопросе встраивания.Так например, если написать

inline double Sqr(double x) {return x*x;}

то Sqr(x) будет (почти во всех реализациях) вычисляться так же быстро, как x*x, но x предварительно приводится к типу double. По сути, Sqr(x) будет заменено на что-то вроде (double y=x, y*y), если бы такие выражения были разрешены.

Встроенные функции: приводят к типу, они знают об области видимости, они могут содержать условные операторы, они могут быть (перегруженными, или функциями-членами, или членами пространств имён, или функциями-друзьями, или задаваться шаблонами, или быть параметрами шаблонов.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 2969 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент всегда отчаянный романтик! Хоть может сдать на двойку романтизм. © Эдуард А. Асадов
==> читать все изречения...

2395 - | 2153 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.