Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Кроссплатформенность





Из рассмотренных технологий промежуточного слоя: DCOM, CORBA, Java RMI только последняя продолжает развиваться. Остальные за редким исключением сконцентрированы на поддержке существующих приложений. В чем секрет такой стабильности Java? Скорее всего, ответ кроется в удачном решении проблемы кроссплатформенности, которая имеет особое значение для гетерогенных систем.

Традиционно кроссплатформенность обеспечивалась с помощью языков высокого уровня. Преобразование исходного кода программы в машинный для конкретного процессора обеспечивает соответствующий компилятор. В таких случаях говорят, что кроссплатформенность обеспечивается на уровне компиляции.

Большинство современных языков высокого уровня можно назвать кроссплатформенными, т. е. для них имеются компиляторы под разные платформы. Однако наиболее распространенным в этом смысле оказался язык С/С++. Трудно найти современный процессор, для которого не было бы компилятора С. Даже микроконтроллеры, у которых всего лишь несколько килобайт оперативной памяти, и те снабжаются компилятором С, иначе они будут неконкурентоспособными. Кроме того, подавляющее большинство операционных систем написаны на С/С++. Семейство Unix-подобных ОС включает компилятор данного языка в свой состав. Не удивительно, что именно язык С/С++ чаще всего использовался для написания кросс-платформенных библиотек: ACE, boost, GTK+, Qt, wxWidgets, STL, OpenGL, OpenAL, BerkeleyDB, ImageMagick, TinyXML, OpenSSL, POCO, asio и множества других.

Но данный подход имеет и свои недостатки, которые ограничивают применение приложений в гетерогенных системах. Среди этих недостатков – компиляция программы (трансляция всей программы в машинные коды до запуска), производимая в ручном или полуавтоматическом режиме при портировании (переносе) программы с одной платформы на другую.

Больший уровень автоматизации обеспечивают интерпретаторы, которые последовательно транслируют отдельные инструкции программы и тут же их исполняют. Примеры интерпретируемых языков: Perl, PHP, Python, Ruby, Matlab, Mathematica, Maple, Mathcad. Интерпретатор представляет собой среду для исполнения интерпретируемых программ, расположенную поверх некоторой платформы (ОС). Если имеются интерпретаторы языка для разных платформ, то говорят о кроссплатформенных средах исполнения.

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

Есть и другие способы обеспечения кроссплатформенности, например, эмуляция одной платформы поверх другой (DOS поверх Windows, Windows поверх Linux и т.п.). Хотя такие способы более громоздки и менее эффективны, в ряде случаев они могут оказаться наиболее подходящими.

Date: 2015-09-24; view: 1025; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию