Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
 так, чтобы они могли работать в будующих версиях Windows, едва ли 
вам удасться просто перекомпилировать исходные тексты, не изменив в них ни 
строчки. Ситуация еще больше ухудшается, если вам нужно, например, перенести 
исходные тексты приложения Windows в среду операционной системы IBM OS/2 или в 
оболочку X-Windows операционной системы UNIX. А ведь есть еще компьютеры Apple, 
рабочие станции с процессором RISC и другие!
    Как нетрудно заметить, даже если стандартизовать язык программирования для 
всех платформ, проблемы совместимости с программным интерфейсом операционной 
системы значительно усложняют перенос программ на различные платформы. И, 
конечно, вы не можете мечтать о том, чтобы загрузочный модуль одной и той же 
программы мог работать без изменений в среде различных операционных систем и на 
различных платформах. Если программа подготовлена для процессора Intel, она ни 
за что не согласится работать на процессоре Alpha или каком-либо другом.
   В результате создавая приложение, способное работать на различных платформах,
 вы вынуждены фактически создавать несколько различных приложений и 
сопровождать их по отдельности.
   На рис. 1.1 мы показали, как приложение, изначально разработанное для 
Microsoft Windows NT, переносится на платформу Apple Macintosh.

Рис. 1.1. Перенос приложения с платформы Windows NT на платформу Apple 
Macintosh
   Вначале программист готовит исходные тексты приложения для платформы 
Microsoft Windows NT и отлаживает их там. Для получения загрузочного модуля 
исходные тексты компилируются и редактируются. Полученный в результате 
загрузочный модуль может работать на процессоре фирмы Intel в среде 
операционной системы Microsoft Windows NT.
   Для того чтобы перенести приложение в среду операционной системы компьютера 
Apple Macintosh, программист вносит необходимые изменения в исходные тексты 
приложения. Эти изменения необходимы из-за различий в программном интерфейсе 
операционной системы Microsoft Windows NT и операционной системы, установленной 
в Apple Macintosh. Далее эти исходные тексты транслируются и редактируются, в 
результате чего получается загрузочный модуль, способный работать в среде Apple 
Macintosh, но не способный работать в среде Microsoft Windows NT.
   Программа на языке Java компилируется в двоичный модуль, состоящий из команд 
виртуального процессора Java. На настоящий момент созданы только первые модели 
физического процессора, способного выполнять эти двоичные команды, однако 
интерпретаторы Java имеются на всех основных компьютерных платформах. 
Разумеется, на каждой платформе используется свой интерпретатор, или, точнее 
говоря, свой виртуальный процессор Java.
   Если ваше приложение Java (или аплет) должно работать на нескольких 
платформах, нет необходимости компилировать его исходные тексты несколько раз. 
Вы можете откомпилировать и отладить приложение Java на одной, наиболее удобной 
для вас платформе. В результате вы получите двоичный модуль, пригодный для 
любой платформы, где есть виртуальный процессор Java.
   Сказанное иллюстрируется на рис. 1.2.

Рис. 1.2. Подготовка приложения Java для работы на разных платформах
   Таким образом, приложение Java компилируется и отлаживается только один раз, 
что уже значительно лучше. Остается, правда, вопрос - как быть с программным 
интерфейсом операционной системы, который отличается для разных платформ?
   Здесь разработчиками Java предлагается достаточно неплохое решение. 
Приложение Java не обращается напрямую к интерфейсу операционной системы. 
Вместо этого оно пользуется готовыми стандартными библиотеками классов, 
содержащими все необходимое для организации пользовательского интерфейса, 
обращения к файлам, для работы в сети и так далее.
   Внутренняя реализация библиотек классов, разумеется, зависит от платформы. 
Однако все загрузочные модули, реализующие возможности этих библиотек, 
поставляются в готовом виде вместе с виртуальной машиной Java, поэтому 
программисту не нужно об этом заботиться. Для операционной системы Microsoft 
Windows, например, поставляются библиотеки динамической загрузки DLL, внутри 
которых запрятана вся функциональность стандартных классов Java.
   Абстрагируясь от аппаратуры на уровне библиотек классов, программисты могут 
больше не заботиться о различиях в реализации программного интерфейса 
конкретных операционных систем. Это позволяет создавать по-настоящему мобильные 
приложения, не требующие при переносе на различные платформы перетрансляции и 
изменения исходного текста.
   Еще одна проблема, возникающая при переносе программ, составленных на языке 
программирования С, заключается в том, что размер области памяти, занимаемой 
переменными стандартных типов, различный на разных платформах. Например, в 
среде операционной системы Microsoft Windows версии 3.1 переменная типа int в 
программе, составленной на С, занимает 16 бит. В среде Microsoft Windows NT 
этот размер составляет 32 бита.
   Очевидно, что трудно составлять программу, не зная точно, сколько имеется 
бит в слове или в байте. При переносе программ на платформы с иной разрядностью 
могут возникать ошибки, которые трудно обнаружить.
   В языке Java все базовые типы данных имеют фиксированную разрядность, 
которая не зависит от платформы. Поэтому программисты всегда знают размеры 
переменных в своей программе.
   Базовые типы данных
   В языке Java определено восемь базовых типов данных, перечисленных ниже:
   
Тип данныхРазмер занимаемой области памятиЗначение по умолчаниюboolean8false
byte80char16‘x0’short160int320long640float320.0Fdouble640.0D   
   Для каждого базового типа данных отводится
 
<<-[Весь Текст]
Страница: из 275
 <<-