Для чего создана программа джава

1.2. Этапы подготовки исполняемой программы. Безопасность.

Исходный файл на языке Java — это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает, что исходные тексты программ хранятся в файлах с расширениями java. Получаемый в процессе трансляции байт-код для каждого класса записывается в отдельном выходном файле, с именем совпадающем с именем класса, и расширением class. Именно сlass-файлы, содержащие байт-код, интерпретируются системой времени выполнения Java в машинный код конкретной системы. Прежде всего байт-код Java загружается в систему времени выполнения загрузчиком классов. Загрузчик классов отвечает за то, чтобы были загружены все классы, необходимые для выполнения приложения. Затем байт-код проверяется верификатором байт-кода на отсутствие операций, которые могли бы нарушить безопасность системы или вызвать в ней аварийную ситуацию. Важно отметить, что загрузчик классов и верификатор байт-кодов не делают никаких предположений относительно происхождения кодов  получены они с локальной файловой системы или с другого континента. Верификатор гарантирует, что любой код, прошедший проверку, может быть использован интерпретатором без риска повредить его (интерпретатор), а именно:

  • не может произойти переполнение или «исчерпание» стека
  • параметры для инструкций байт-машины имеют нужный тип
  • доступ к полям и методам объектов не нарушает объявленных в классе правил (public, private, protected)

После такой проверки на безопасность байт-код интерпретируется в машинный код и запускается на выполнение интерпретатором. Причём классы, полученные локально (заслуживающие безусловного доверия), и классы, присланные по сети из остального мира (и потенциально враждебные), находятся в разных пространствах имён. При разрешении ссылки на какой-либо класс он ищется прежде всего в локальном пространстве. Это не позволяет «внешним» кодам подменить один из базовых классов в системе. Также в процессе интерпретации происходит подключение необходимых библиотек (файлы с расширением jar). Весь описанный процесс исполнения Java программ изображён на рис. 1.

Рис. 1. Процесс создания работающегоJava-приложения Как уже было сказано выше, технология Java предполагает лёгкую переносимость программных продуктов с одной платформы на другую. Такую степень лёгкости переноса не обеспечивает ни какой язык программирования. На рис. 2 показвно, как приложение, изначально разработанное на языка С для Windows NT, переносится на платформу Apple Macintosh. Платформа Windows NT Платформа Apple Macintosh Изменение исходного текста программы Программа на С Программа на С Компилятор и редактор связей Компилятор и редактор связей Загрузочный модуль Загрузочный модуль Рис. 2.Перенос приложения с платформы Windows NTна платформу Macintosh Вначале программист готовит исходные тексты приложения для платформы Windows NT и отлаживает их там. Для получения загрузочного модуля исходные тексты компилируются и редактируются. Полученный в результате загрузочный модуль может работать на процессоре фирмы Intel в среде операционной системы Windows NT. Для того чтобы перенести приложение в среду операционной системы компьютера Macintosh, программист вносит необходимые изменения в исходные тексты приложения. Эти изменения необходимы из-за различий в программном интерфейсе операционной системы Windows NT и операционной системы, установленной в Macintosh. Далее эти исходные тексты транслируются и редактируются, в результате чего получается загрузочный модуль, способный работать в среде Macintosh, но не способный работать в среде Windows NT. Программа на языке Java компилируется в двоичный модуль, состоящий из команд виртуального процессора Java (Виртуальная машина Java). Такой модуль содержит байт-код, предназначенный для выполнения Java-интерпретатором. На настоящий момент уже созданы первые модели физического процессора, способного выполнять этот байт-код, однако интерпретаторы Java имеются на всех основных компьютерных платформах. Разумеется, на каждой платформе используется свой интерпретатор, или, точнее говоря, свой виртуальный процессор Java. Если приложение Java (или апплет) должно работать на нескольких платформах, нет необходимости компилировать его исходные тексты несколько раз. Можно откомпилировать и отладить приложение Java на одной, наиболее удобной платформе. В результате получится байт-код, пригодный для любой платформы, где есть виртуальный процессор Java. Сказанное иллюстрируется на рис. 3. Платформа Windows NT Платформа Apple Macintosh Приложение Java Виртуальный процессор Java
Транслятор Платформа Sun Solaris Виртуальный процессор Java Байт-код Рис. 3. Подготовка приложения Java для работы на разных платформах Таким образом, приложение Java компилируется и отлаживается только один раз, что уже значительно лучше. Остается, правда, вопрос — как быть с программным интерфейсом операционной системы, который отличается для разных платформ? Здесь разработчиками Java предлагается достаточно неплохое решение. Приложение Java не обращается напрямую к интерфейсу операционной системы. Вместо этого оно пользуется готовыми стандартными библиотеками классов, содержащими все необходимое для организации пользовательского интерфейса, обращения к файлам, для работы в сети и так далее. Внутренняя реализация библиотек классов, разумеется, зависит от платформы. Однако все загрузочные модули, реализующие возможности этих библиотек, поставляются в готовом виде вместе с виртуальной машиной Java, поэтому программисту не нужно об этом заботиться. Для операционной системы Windows, например, поставляются библиотеки динамической загрузки DLL, внутри которых запрятана вся функциональность стандартных классов Java. Абстрагируясь от аппаратуры на уровне библиотек классов, программисты могут больше не заботиться о различиях в реализации программного интерфейса конкретных операционных систем. Это позволяет создавать по-настоящему мобильные приложения, не требующие при переносе на различные платформы перетрансляции и изменения исходного текста. Еще одна проблема, возникающая при переносе программ, составленных на языке программирования С, заключается в том, что размер области памяти, занимаемой переменными стандартных типов, различный на разных платформах. Например, в среде операционной системы Windows версии 3.1 переменная типа int в программе, составленной на С, занимает 16 бит. В среде Windows NT этот размер составляет 32 бита. Очевидно, что трудно составлять программу, не зная точно, сколько имеется бит в слове или в байте. При переносе программ на платформы с иной разрядностью могут возникать ошибки, которые трудно обнаружить. В языке Java все базовые типы данных имеют фиксированную разрядность, которая не зависит от платформы. Поэтому программисты всегда знают размеры переменных в своей программе.

Читайте также:
12 июня что за программа

Сделал Java программу с интерфейсом / Погодное приложение

Язык программирования Java — зачем его учить и что на нем пишут

Источник: studfile.net

Происхождение Java: предназначение языка и его сильные стороны

Язык Java - для чего создан и какие плюсы

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

  • Зарождение современного программирования: язык С
  • Следующий этап: язык C++
  • Предпосылки к созданию Java
  • Вас заинтересует / Intresting for you:

Несмотря на то что язык Java неразрывно связан с Интернетом, важно пом­нить, что это, прежде всего, язык программирования. Разработка и усовершен­ствование языков программирования обусловлены двумя основными причинами:

  • адаптация к изменяющимся средам и областям применения;
  • реализация улучшений и усовершенствований в области программирования.

Как будет показано в этой статье, разработка языка Java почти в равной мере была обусловлена обеими этими причинами.

Язык Java тесно связан с языком C++, который, в свою очередь, является пря­мым наследником языка С. Многие особенности Java унаследованы от обоих этих языков. От С язык Java унаследовал свой синтаксис, а многие его объектно-ориен­тированные свойства были перенесены из C++.

Собственно говоря, ряд определяющих характеристик языка Java был перенесен — или разработан в ответ на воз­никшие потребности — из его предшественников. Более того, создание Java свои­ми корнями уходит глубоко в процесс усовершенствования и адаптации, который происходит в языках программирования на протяжении нескольких последних десятилетий. Поэтому в этом разделе рассматривается последовательность со­бытий и факторов, приведших к появлению Java. Как станет ясно в дальнейшем, каждое новшество в архитектуре языка, как правило, было обусловлено необходимостью найти решение той или иной основной проблемы, которую не могли разрешить существовавшие до этого языки. И Java не является исключением из этого правила.

Зарождение современного программирования: язык С

Язык С буквально потряс компьютерный мир. Его влияние нельзя недооцени­вать, поскольку он полностью изменил подход к программированию. Создание языка С было прямым следствием потребности в структурированном, эффектив­ном и высокоуровневом языке, который мог бы заменить код ассемблера в процес­се создания системных программ. Как вы, вероятно, знаете, при проектировании языка программирования часто приходится находить компромиссы между:

  • простотой использования и предоставляемыми возможностями;
  • безопасностью и эффективностью;
  • устойчивостью и расширяемостью.

До появления языка С программистам, как правило, приходилось выбирать между языками, которые позволяли оптимизировать тот или иной ряд характе­ристик. Так, на языке FORTRAN можно было писать достаточно эффективные программы для научных вычислений, но он не очень подходил для написания системного кода. Аналогично язык BASIC был очень прост в изучении, но у него было не очень много функциональных возможностей, а недостаточная структу­рированность ставила под сомнение его полезность для написания крупных про­грамм. На языке ассемблера можно писать очень эффективные программы, но его трудно изучать и эффективно использовать. Более того, отладка ассемблерного кода может оказаться весьма сложной задачей.

Еще одна усложнявшая дело проблема состояла в том, что первые языки про­граммирования вроде BASIC, COBOL и FORTRAN были разработаны без учета принципов структурирования. Вместо этого основными средствами управления программой в них были операторы безусловного перехода GOTO. В результате программы, написанные на этих языках, проявляли тенденцию к появлению так называемого “макаронного кода” — множества запутанных переходов и условных ветвей, которые делали программу едва ли доступной для понимания. И хотя язы­ки наподобие Pascal структурированы, они не были предназначены для написания эффективных программ и лишены ряда важных средств, необходимых для напи­сания разнообразных программ. (В частности, применять Pascal для написания системного кода было нецелесообразно, принимая во внимание наличие несколь­ких стандартных диалектов этого языка.)

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

В начале 1970-х годов началась компьютерная революция, и потребность в программном обеспечении быстро превысила возможности программи­стов по его созданию. В академических кругах большие усилия были приложены к созданию более совершенного языка программирования. Но в то же время стало все больше ощущаться влияние еще одного, очень важного фактора.

Читайте также:
Adobe sTory что это за программа

Компьютеры, наконец, получили достаточно широкое распространение, чтобы была достигну­та “критическая масса”. Компьютерное оборудование больше не находилось за за­крытыми дверями. Впервые программисты получили буквально неограниченный доступ к своим вычислительным машинам. Это дало свободу для экспериментиро­вания.

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

Язык С, изобретенный и впервые реализованный Деннисом Ритчи на мини- ЭВМ DEC PDP-11, работавшей под управлением операционной системы UNIX, явился результатом процесса разработки, начавшегося с предшествующего ему языка BCPL, разработанного Мартином Ричардсом. BCPL оказал влияние на язык, получивший название В, который был изобретен Кеном Томпсоном и в начале 1970-х гг. привел к появлению языка С. В течение долгих лет фактическим стандартом языка С была его версия, которая поставлялась вместе с операционной си­стемой UNIX (она описана в книге Язык программирования С Брайана Кернигана и Денниса Ритчи, 2-е издание, И.Д. “Вилямс”, 2007 г.). Язык С был формально стан­дартизован в декабре 1989 г„ когда Национальный институт стандартизации США (American National Standards Institute — ANSI) принял стандарт на С.

Многие считают создание С началом современного этапа развития языков про­граммирования. Этот язык успешно соединил противоречивые свойства, которые доставляли столько неприятностей в предыдущих языках. В итоге появился мощ­ный, эффективный, структурированный язык, изучение которого было сравнительно простым.

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

Иное дело — язык С. Он был спроектирован, реализован и разработан практикующими программистами и от­ражал их подход к программированию. Его функции были отлажены, проверены и многократно переработаны людьми, которые действительно пользовались этим языком. Таким образом, получился язык, который сразу же понравился программистам.

И действительно, язык С быстро приобрел много приверженцев, кото­рые едва ли не молились на него. Благодаря этому С получил быстрое и широкое признание среди программистов. Короче говоря, С — это язык, разработанный программистами для программистов. Как станет ясно в дальнейшем, эту замечательную особенность унаследовали язык Java.

Следующий этап: язык C++

В конце 1970-х-начале 1980-х гг. язык С стал господствующим языком про­граммирования и продолжает широко применяться до сих пор. А если С — удач­ный и удобный язык, то может возникнуть вопрос: чем обусловлена потребность в каком-то другом языке? Ответ состоит в постоянно растущей сложности про­грамм.

На протяжении всей истории развития программирования постоянно растущая сложность программ порождала потребность в более совершенных спо­собах преодоления их сложности. Язык C++ явился ответом на эту потребность. Чтобы лучше понять, почему потребность преодоления сложности программ яв­ляется главной побудительной причиной создания языка C++, рассмотрим следу­ющие факторы.

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

Первым языком программирования, который получил широкое распростране­ние, был, конечно же, FORTRAN. Хотя он и стал первым впечатляющим этапом в программировании, его вряд ли можно считать языком, который способствует созданию ясных и простых для понимания программ. 1960-е годы ознаменовались зарождением структурного программирования.

Эта методика программирования наи­более ярко проявилась в таких языках, как С. Пользуясь структурированными язы­ками, программисты впервые получили возможность без особых затруднений соз­давать программы средней сложности. Но и методика структурного программиро­вания уже не позволяла программистам справиться со сложными проектами, когда они достигали определенных масштабов. К началу 1980-х. сложность многих про­ектов начала превышать предел, позволявший справиться с ними, применяя струк­турный подход. Для решения этой проблемы была изобретена новая методика про­граммирования, получившая название объектно-ориентированного программирования (ООП). Объектноориентированное программирование подробно рассматривает^ ся в последующих главах, а здесь приводится лишь краткое его определение: ООП — это методика программирования, которая помогает организовывать сложные про­граммы, применяя принципы наследования, инкапсуляции и полиморфизма.

Из всего сказанного выше можно сделать следующий вывод: несмотря на то, что С является одним из лучших в мире языков программирования, существует предел его способности справляться со сложностью программ. Как только раз­меры программы превышают определенную величину, она становится слишком сложной, чтобы ее можно было охватить как единое целое. Точная величина этого предела зависит как от структуры самой программы, так и от подходов, исполь­зуемых программистом, но начиная с определенного момента любая программа становится слишком сложной для понимания и внесения изменений, а следова­тельно, неуправляемой. Язык C++ предоставил возможности, которые позволили программистам преодолеть этот порог сложности, чтобы понимать крупные про­граммы и управлять ими.

Язык C++ был изобретен Бьярне Страуструпом (Bjarne Stroustrup) в 1979 г., когда он работал в компании Bell Laboratories в городе Мюррей-Хилл, шт. Нью-Джерси. Вначале Страуструп назвал новый язык “С with Classes” (С с классами). Но в 1983 г. это название было изменено на C++. Язык C++ расширяет функцио­нальные возможности языка С, добавляя в него объектно-ориентированные свой­ства.

Читайте также:
Yandex browser что это за программа

А поскольку язык C++ построен на основе С, то в нем поддерживаются все функциональные возможности, свойства и преимущества С. Это обстоятельство явилось главной причиной успешного распространения C++ в качестве языка программирования. Изобретение языка C++ не было попыткой создать совершенно новый язык программирования. Напротив, все усилия были направлены на усовершенствование уже существующего очень удачного языка.

Предпосылки к созданию Java

К концу 1980-х и в начале 1990-х гг. объектно-ориентированное программиро­вание на C++ стало основной методикой программирования. И в течение некото­рого, хотя и непродолжительного периода времени казалось, что программисты наконец изобрели идеальный язык. Ведь язык C++ сочетал в себе высокую эффективность и стилистические элементы языка С наряду с объектно-ориентирован­ным подходом, и поэтому его можно было использовать для создания самых раз­ных программ. Но, как и прежде, уже вызревали факторы, которые должны были в очередной раз стимулировать развитие языков программирования. Прошло еще несколько лет, и развитие Всемирной паутины и Интернета достигло “критиче­ской массы”, что и привело к еще одной революции в программировании.

Источник: oracle-patches.com

Что такое Java? История создания

Аннотация: Первая лекция начинается с рассказа о событиях, происходивших задолго до официального объявления Java. Хотя эта технология на сегодняшний день разительно отличается от того, как задумывали ее создатели, однако многие особенности берут свое начало от решений, принятых в то время. Будут освещены все основные этапы создания, появления и развития Java. Также в лекции излагаются необходимые базовые знания для разработчиков – основные свойства платформы Java, и почему она является платформой, а не просто языком программирования. Что входит в пакет разработчика, где найти нужную информацию, какие дополнительные продукты предоставляет Sun, чем различаются Java и Java Script – ответы на эти и другие общие вопросы находятся в первой лекции.

Что такое Java?

Что знают о Java обычные пользователи персональных компьютеров и Internet ? Что говорят о нем разработчики, которые не занимаются этой технологией профессионально?

Java широко известна как новейший объектно-ориентированный язык, легкий в изучении и позволяющий создавать программы, которые могут исполняться на любой платформе без каких-либо доработок ( кроссплатформенность ). Еще с Java почему-то всегда связана тема кофе (изображения логотипов, названия продуктов и т.д.). Программисты могут добавить к этому описанию, что язык похож на упрощенный С или С++ с добавлением garbage collector’а — автоматического сборщика «мусора» ( механизм освобождения памяти, которая больше не используется программой ). Также известно, что Java ориентирована на Internet , и самое распространенное ее применение — небольшие программы, апплеты , которые запускаются в браузере и являются частью HTML -страниц.

Критики, в свою очередь , утверждают, что язык вовсе не так прост в применении, многие замечательные свойства лишь заявлены, а на самом деле не очень-то работают, а главное — программы на Java исполняются чрезвычайно медленно. Следовательно, это просто некая модная технология, которая только на время привлечет к себе внимание, а затем исчезнет, как и многие другие.

Однако некоторые факты не позволяют согласиться с такой оценкой. Во-первых, со времени официального объявления Java прошло достаточно много времени для «просто модной технологии». Во-вторых, конференция разработчиков Java One , которая впервые была организована в 1996 году, уже через год собрала более 10000 участников и стала крупнейшей конференцией по созданию программного обеспечения в мире (каждый следующий год число участников росло примерно на 5000). Специальная программа Sun , объединяющая разработчиков Java по всему миру, Java Developer Connection , также была запущена в 1996 году, через год она насчитывала более 100.000 разработчиков, а в 2000 году — более 1,5 миллионов. На сегодня число программистов на Java оценивается в 3 миллиона.

Было выпущено пять основных версий языка, начиная с 1.0 в 1995 году и заканчивая 1.4 в феврале 2002 года (21 сентября 2017 вышла 9я версия). Следующая версия 1.5 выпущена в 2004 году. Все версии и документацию к ним всегда можно было бесплатно получить на официальном web-сайте Java http://java.sun.com/.

Один из первых продуктов для Java — JDK 1.1 (средство разработки на Java ) — в течение первых трех недель после объявления был загружен более 220.000 раз. Версия 1.4 была загружена более 2 миллионов раз за первые 5 месяцев. Практически все ведущие производители программного обеспечения лицензировали технологию Java и регулярно объявляют о выходе построенных на ней продуктов. Это и «голубой гигант» IBM , и создатель платформы Macintosh фирма Apple, и лидер в области реляционных БД Oracle , и даже главный конкурент фирмы Sun — корпорация Microsoft — лицензировала Java еще в марте 1996 года.

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

Источник: intuit.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru