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

Автор работы: Пользователь скрыл имя, 08 Ноября 2010 в 15:23, Не определен

Описание работы

ВВЕДЕНИЕ
1 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
1.1 ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
1.2 СУЩНОСТЬ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА К ПРОГРАММИРОВАНИЮ
2.ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
2.1 C++
2.2 Java
2.3 Delphi
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ

Файлы: 1 файл

основное.docx

— 56.35 Кб (Скачать файл)

     Некоторые параметры объекта могут быть локализованы внутри объекта и недоступны для прямого воздействия извне  объекта. Например, во время движения объекта-автомобиля объект-водитель может  воздействовать только на ограниченный набор органов управления (рулевое  колесо, педали газа, сцепления и  тормоза, рычаг переключения передач) и ему недоступен целый ряд  параметров, характеризующих состояние  двигателя и автомобиля в целом.

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

     Опыт  программирования показывает, что любой  методический подход в технологии программирования не должен применяться слепо с  игнорированием других подходов. Это  относится и к объектно-ориентированному подходу. Существует ряд типовых  проблем, для которых его полезность наиболее очевидна, к таким проблемам  относятся, в частности, задачи имитационного  моделирования, программирование диалогов с пользователем. Существуют и задачи, в которых применение объектного подхода ни к чему, кроме излишних затрат труда, не приведет. В связи  с этим наибольшее распространение  получили объектно-ориентированные  языки программирования, позволяющие  сочетать объектный подход с другими  методологиями. В некоторых языках и системах программирования применение объектного подхода ограничивается средствами интерфейса с пользователем (например, Visual FoxPro ранних версий).

     Наиболее  используемыми в настоящее время  объектно-ориентированными языками  являются Паскаль с объектами и С++, причем наиболее развитые средства для работы с объектами содержатся в С++. 
 
 

     

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     2 ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ 

     В данной части будут рассмотрены  3 языка : C++, Java, Delphi. 

     2.1 C++ 

     C++ — компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком Си, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от языка C (Си), в котором унарный оператор ++ обозначает инкремент переменной.

     

     Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает операционные системы, прикладные программы, драйверы устройств, приложения для  встраиваемых систем, высокопроизводительные серверы, а также развлекательные  приложения, например, видеоигры. Существует несколько реализаций языка, как бесплатных, так и коммерческих. Их производят GNU ProjectMicrosoftIntel иEmbarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на C# и Java.

     При создании C++ стремились сохранить совместимость  с языком C. Большинство программ на будут исправно работать и с компилятором C++. C++ имеет синтаксис, основанный на синтаксисе C.

     В книге «Дизайн и эволюция C++» Бьёрн Страуструп описывает принципы, которых он придерживался при проектировании C++. Эти принципы объясняют, почему C++ именно такой, какой он есть. Некоторые из них:

  • Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка Си.
  • Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программированиеабстракцию данныхобъектно-ориентированное программирование и обобщённое программирование.
  • Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
  • Максимально сохранить совместимость с Си, тем самым делая возможным лёгкий переход от программирования на Си.
  • Избежать разночтений между Си и C++: любая конструкция, которая допустима в обоих этих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
  • Избегать особенностей, которые зависят от платформы или не являются универсальными.
  • Никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.
  • Не требовать слишком усложнённой среды программирования.
 

     2.2 Java 

     Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года.

     Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

     Достоинство подобного способа выполнения программ — в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

     Часто к недостаткам концепции виртуальной  машины относят то, что исполнение байт-кода виртуальной машиной может  снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо  для первых версий виртуальной машины Java, однако в последнее время оно  практически потеряло актуальность. Этому способствовал ряд усовершенствований:

  • применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
  • широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
  • аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

     По  данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два  раза больше, чем для C/C++, в некоторых  случаях Java быстрее, а в отдельных  случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++.

     Идеи, заложенные в концепцию и различные  реализации среды виртуальной машины Java, вдохновили множество энтузиастов  на расширение перечня языков, которые  могли бы быть использованы для создания программ, исполняемых на виртуальной  машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы.NET компанией Microsoft.

     Внутри Java существуют несколько основных семейств технологий:

  • J2EE или Java EE (начиная с v1.5) — Java Enterprise Edition, для создания программного обеспечения уровня предприятия;

     

  • J2SE или Java SE (начиная с v1.5) — Java Standard Edition, для создания пользовательских приложений, в первую очередь — для настольных систем;
  • J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонахКПК, встроенных системах;
  • Java Card для использования в устройствах без собственного человеко-машинного интерфейса, например в смарт-картах.

     Самыми  популярными считаются серверные  технологии семейства J2EE.

     Последним релизом является версия 1.6, в которой  было произведено улучшение системы  безопасности, улучшение поддержки XML, а также добавлена поддержка скриптового языка JavaScript на основе механизма Mozilla Rhino, улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов.

     Компанией Microsoft была разработана собственная реализация JVM (MSJVM), включавшаяся в состав различных операционных систем, начиная с Windows 98 (также входила в Internet Explorer от версии 3 и выше, что позволяло использовать MSJVM в ОС Windows 95 и Windows NT 4 после установки IE3+ на данные ОС).

     MSJVM имела существенные отличия от Sun Java, во многом ломающие основополагающую концепцию переносимости программ между разными платформами:

  • отсутствие поддержки программного интерфейса вызова удаленных методов (RMI);
  • отсутствие поддержки технологии JNI;
  • наличие нестандартных расширений, таких как средства интеграции Java и DCOM, работающих только на платформе Windows;
  • JIT-компилятор.

Информация о работе Объектно-ориентированные языки программирования