Assembler для Java

Оценка целесообразности применения низкоуровневого машинного кода совместно с высокоуровневым языком программирования. Рассмотрение возможности произвести вставку ассемблерного кода в языке Java. Цели совмещения Java и ассемблера. Java Native Interface.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 15.02.2019
Размер файла 15,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ASSEMBLER ДЛЯ JAVA

Абазов Александр Александрович

Абрамова Оксана Фёдоровна

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

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

Устройство Java приложений

Как было указано выше, для запуска Java приложений требуется специальная Java машина, способная исполнять байт-код java. Из исходного текста Java-программы компилятором Java создается байт-код, который в свою очередь исполняется на Java Virtual Machine. Во многих java машинах совместно с интерпретатором байт-кода для повышения быстродействия используется JIT-компиляция часто исполняемых частей байт-кода в машинный код.

Цели совмещения java и ассемблера

Использование ассемблера совместно с языками высокого уровня несет в себе несколько очевидных преимуществ:

• Оптимизация.

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

• Получение доступа к специфичным процессорным инструкциям.

Некоторые процессоры поддерживают специальные инструкции, такие как test-and-set и сравнение с обменом-- инструкции, которые могут быть использованы для реализации примитивов синхронизации и блокировок. Подавляющее большинство современных процессоров имеют идентичные или схожие инструкции, так как без них нельзя обойтись при реализации многозадачности.

• Системные вызовы.

Так как языки программирования высокого уровня довольно редко предоставляют прямую возможность делать системные вызовы, для этих целей используется ассемблерный код

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

Java Native Interface

В большинстве популярных высокоуровневых языков программирования можно было бы воспользоваться ассемблерными вставками. Но в java у нас нет возможности вставить inline-функцию с машинным кодом. Одним из способов обойти данную проблему является Java Native Interface.

Java Native Interface -- стандартный механизм для запуска кода под управлением виртуальной машины Java, который написан на Ассемблере или С/С++ и скомпонован в виде динамических библиотек, что позволяет не использовать статическое связывание. Это дает возможность вызывать подпрограммы, написанные на ассемблере из программ на Java, и наоборот.

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

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

язык программирование ассемблерный код

Библиографические ссылки

1. Абрамова О.Ф. Обзор алгоритмов масштабирования растровой графики [Электронный ресурс] / О.Ф. Абрамова, А.Е. Иванов, А.Н. Инкин // European Student Scientific Journal: электрон. науч. журнал / РАЕ. - 2016. - № 2

2. Рыбанов А.А. Анализ существующего программного обеспечения в области учёта ГСМ [Электронный ресурс] / А.А. Рыбанов, И.А. Возжин // Форум молодых учёных: междунар. науч.-практ. периодическое сетевое издание. - 2017. - № 5

3. Лясин, Д.Н. Объектно-ориентированный анализ и проектирование программных систем: учеб. пособ.(гриф). Доп. УМО вузов по университетскому политехническому образованию / Д.Н. Лясин, О.Ф. Абрамова; ВПИ (филиал) ВолгГТУ. - Волгоград, 2015. - 99 с.

4. Бородай С.С. Конструирование программно-информационной системы оценки метрических характеристик физических схем реляционных баз данных [Электронный ресурс] / С.С. Бородай, А.А. Рыбанов // Постулат: электрон. науч. журнал. - 2017. - № 5. - 9 с.

5. Электронный ресурс: https://habr.com/company/jugru/blog/347200/

Размещено на Allbest.ru

...

Подобные документы

  • Архитектура уровня команд платформы Java, формат файла класса Java. Компилятор ассемблероподобного языка, позволяющий создавать файлы классов, корректно обрабатываемые реальной JVM, поддерживающий все команды байт-кода Java и важнейшие возможности JVM.

    курсовая работа [292,6 K], добавлен 17.09.2008

  • Сетевые возможности языков программирования. Преимущества использования Java-апплетов. Классы, входящие в состав библиотеки java.awt. Создание пользовательского интерфейса. Сокетное соединение с сервером. Графика в Java. Значения составляющих цвета.

    курсовая работа [508,1 K], добавлен 10.11.2014

  • Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.

    курсовая работа [549,2 K], добавлен 23.12.2015

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

  • Трансляция как процесс перевода программного кода из текстовой формы в машинные коды. Основные категории программ Java. Основные управляющие операторы. Объявление и инициализация переменных. Основные средства разработки приложений, написанных на Java.

    презентация [938,2 K], добавлен 26.10.2013

  • Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.

    курсовая работа [208,6 K], добавлен 03.12.2013

  • Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.

    курсовая работа [1,8 M], добавлен 16.09.2015

  • Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.

    курсовая работа [276,1 K], добавлен 19.07.2014

  • Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.

    курсовая работа [197,5 K], добавлен 19.11.2009

  • Основа пользовательского интерфейса. Возможности пакетов java.awt.geom, java.awt, классов java.awt.Graphics и java.awt.Graphics2D. Основные графические примитивы и работа с потоками. Листинг программы и составление композиции аффинных преобразований.

    методичка [525,3 K], добавлен 30.06.2009

  • Принцип работы Java. Аплеты как особенность Java-технологии, характеристика методов их защиты. Модель безопасности JDK1.2 и концепция "песочницы". Иерархия криптографических сервисов, алгоритмов. Объектная организация криптографической подсистемы Java.

    реферат [54,8 K], добавлен 09.09.2015

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Методология объектно-ориентированного программирования в Java. Понятия класса, объекта и объектной переменной. Динамическая и статическая объектные модели. Логическое структурирование приложения. Наследование в Java. Отличия интерфейсов от классов.

    курс лекций [547,2 K], добавлен 01.05.2014

  • Java Runtime Environment - минимальная реализация виртуальной машины, необходимая для исполнения приложений, без компилятора и других средств разработки. Компиляция исходного кода через командную строку. Основные моменты создания игрового 2d-приложения.

    курсовая работа [2,1 M], добавлен 26.04.2014

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Понятие и функциональные особенности Java Card как версии Java-платформы для устройств с крайне ограниченными вычислительными ресурсами, оценка ее возможностей и необходимых ресурсов. Анализ степени безопасности платформы, взаимодействие компонентов.

    презентация [1,0 M], добавлен 19.05.2014

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

  • Особенности работы с графическими изображениями Java Script. Способы динамического управления слоями. Рассмотрение примеров использования операторов цикла. Характеристика свойств объекта form: encoding, elements, checkbox. Возможности документов HTML.

    курсовая работа [167,7 K], добавлен 09.02.2013

  • Выполнение Java-программы. Набор программ и классов JDK. Объектно-ориентированное программирование в Java. Принципы построения графического интерфейса. Компонент и контейнер графической системы. Апплеты как программы, работающие в среде браузера.

    курсовая работа [42,3 K], добавлен 08.02.2011

  • Преимущество использования программ, написанных на Java, требования к ним и настройки на клиентском ПК. Развертывание и последующее "автоматическое" обновление версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.

    реферат [33,2 K], добавлен 16.05.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.