Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Действительно ли язык программирования Ява унаследован от C++?

div.main {margin-left: 20pt; margin-right: 20pt}

Действительно ли язык программирования Ява унаследован от C++?
Скорее нет, чем да. Идея Sun заключалась в том, чтобы упростить обучение Явы,
сделав ее синтаксис похожим на наиболее распространенный язык программирования.
Это должно было, в конечном итоге, стимулировать и упростить переход на Яву
С-программистов. В то же время, в Яве заложены идеи и механизмы, почерпнутые из
ряда других систем и языков программирования. Взять хотя бы контроль выхода за
границу массива (Паскаль). Или тот факт, что компиляция Ява-программ является
раздельной, классы разбиты по пакетам. Это является одним из вариантов
модульного программирования (как, скажем, в Модула-2), отличающемся от концепции
независимой компиляции файлов C++. Некоторые новации были взяты из неизвестных
широкой публике языков и систем. К примеру, принцип интерфейса классов взят из
языка Objective C, разработанного компанией NeXT. Механизм обработки
исключительных ситуаций почти полностью позаимствован из Модулы-3. Принцип
одинарного наследования, взятый на вооружение языком Java (вместо более
известного по C++ множественного наследования), был положен в основу Смолтока,
Модулы-3 и Оберона. Средства многопоточного программирования построены на основе
Модулы-3 и Ады (хотя идеологи Java подчеркивают здесь связь с языками Mesa и
Cedar).


Что касается такой важной составляющей языка Ява, как сборка
мусора, то принципы ее внутренней реализации позаимствованы прежде всего из
Лиспа. Часть "нормальных" языков, таких как Эйфель, Модула-3, Оберон также
изначально располагала этим механизмом. Нельзя сказать, что в C++ подобный
механизм невозможен. Существуют С++ библиотеки, которые дают возможность
работать с памятью на основе принципа счетчиков использования ресурсов и
реализуют, фактически, пресловутую сборку мусора. Но они не являются частью
языка C++.


Существует и ряд других менее важных отличий Ява от C++. К примеру,
в Яве нет перечислимого типа (enum). Резюмируя, можно сказать, что Ява вобрала в
себе большое количество идей и подходов из разных систем программирования, и в
том числе синтаксис языка C++. Программисту, знакомому с С++, разумеется, будет
легче изучить Яву. Но для полноценной работы с Ява ему придется, в любом случае,
немало потрудиться.



Владислав Кравченко, href="mailto:grigorenko@mail.ru">Григорий Григоренко


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2020
    Реклама на сайте