Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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 и т.п.). Хотя такие способы более громоздки и менее эффективны, в ряде случаев они могут оказаться наиболее подходящими.
|