ПОДДЕРЖКА СКРИПТОВЫХ ЯЗЫКОВ В JAVA-ПРИЛОЖЕНИЯХ - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

ПОДДЕРЖКА СКРИПТОВЫХ ЯЗЫКОВ В JAVA-ПРИЛОЖЕНИЯХ

Губатенко О.Н. 1
1Балаковский инженерно-технологический институт (филиал) федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский ядерный университет (МИФИ)»
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
ВВЕДЕНИЕ

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

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

Для создания пользовательских расширений язык сценариев удобен в ряде случаев:

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

  2. Наглядность. Язык сценариев используется, если необходим выразительный код. Концепция программирования в скриптовом языке может кардинально отличаться от основной программы.

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

  4. Кроссбраузерность. Скриптовые языки программирования ориентированы на кроссбраузерность. Например, JavaScript может исполняться браузерами практически под всеми современными операционными системами.

JAVA

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

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

Сфера применения JAVA представляет собой следующую картину:

  1. Создание десктопов и апплетов. Данный продукт создается под заказ.

  2. Создание мобильных приложений. Отдельный мир программирования.

  3. Различные серверные приложения, которые в основном ориентированы на работу с сетью.

История версий Java:

  1. JDK 1.0. Разработка началась в 1990 году. Первая официальная версия Java 1.0 была выпущена 21 января 1996 года. Кодовое имя Oak.

  2. JDK 1.1. Вторая версия была выпущена 19 февраля 1997 года. Кодовое имя Oak.

Характеристики:

  • Библиотека Accessibility.

  • Java 2D.

  • Поддержка технологии drag-and-drop.

  • Полная поддержка Unicode, включая поддержку ввода на японском, китайском и корейском языках.

  • Поддержка воспроизведения аудиофайлов нескольких популярных форматов.

  • Полная поддержка технологии CORBA.

  • JIT-компилятор, улучшенная производительность.

  • Усовершенствования инструментальных средств JDK, в том числе поддержка профилирования Java-программ.

  1. J2SE 1.2. Дата выпуска 8 декабря 1998 года. Кодовое имя Playground.

  2. J2SE 1.3. Дата выпуска 8 мая 2000 года. Кодовое имя Kestrel.

  3. J2SE 1.4. Дата выпуска 6 февраля 2002 года. Кодовое имя Merlin.

  4. J2SE 5.0. Спецификация Java 5.0 была выпущена 30 сентября 2004 года, кодовое имя Tiger. C этой версии изменена официальная индексация, вместо Java 1.5 правильнее называть Java 5.0. Внутренняя же индексация Sun осталась прежней — 1.x. Минорные изменения теперь включаются без изменения индексации, для этого используется слово «Update» или буква «u», например, Java Development Kit 5.0 Update 22. Предполагается, что в обновления могут входить как исправления ошибок, так и небольшие добавления в API, JVM.

В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:

  • Перечислимые типы (англ. enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей.

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

    • Перечисление может реализовывать интерфейсы.

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

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

  • Средства. обобщённого программирования (англ. generics) — механизм, аналогичный Eiffel (позже также появились и в C#, принципиально отличаются от шаблонов C++), дающий возможность создавать классы и методы с полями и параметрами произвольного объектного типа. С использованием данного механизма реализованы новые версии коллекций стандартной библиотеки Java.

  • Методы с неопределённым числом параметров.

  • Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими типами-обёртками (например, между int — Integer). Наличие такой возможности сокращает код, поскольку исключает необходимость выполнения явных преобразований типов в очевидных случаях.

  • Разрешён импорт статических полей и методов.

  • В язык введён цикл по коллекции объектов (итератор, англ. foreach).

  • Было введено использование Javadoc-комментариев, которые используются для автоматического оформления документации по комментариям в исходном коде.

  1. Java SE 6. Релиз версии состоялся 11 декабря 2006 года, кодовое имя Mustang. Изменена официальная индексация — вместо ожидаемой 6.0 версия значится как 6. Минорные изменения, как и в Java 5.0, вносятся в обычные обновления версии, например, Java Standard Edition Development Kit 6 Update 27. Внесены следующие изменения:

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

  • Добавлена поддержка японского императорского календаря (наряду с уже существующими григорианским и буддийским календарями).

  • Доступны классы-потоки для чтения и передачи сжатых данных, с возможностью передачи их по сети. Сняты ограничения на количество файлов в архиве (ранее 64 Кб), длину названия файла (ранее 256 символов) и количество одновременно открытых файлов (ранее 2000 шт).

  • Организована система управления кэшем и добавлена поддержка параметра «no-cache» в HTTP-запросе.

  • JConsole, графический мониторинг JVM, стала официально поддерживаемой утилитой.

  • Java HTTP Server, позволяет создать полноценный HTTP сервер, с минимально необходимыми функциональными свойствами.

  • Повысилась скорость вычислений на 70 %, скорость операций ввода-вывода возросла в два раза[17].

  • Swing — улучшена работоспособность OpenGL и DirectX; обработка текста на LCD; добавлен GifWriter, для работы с файлами .gif.

  • Исправлено большое количество ошибок.

  1. Java FX. Дата выпуска 8 октября 2013 года.

  2. Java ME Embedded. Дата выпуска 10 октября 2013 года. Кодовое имя Micro Edition.

  3. Java SE 7. Релиз версии состоялся 28 июля 2011 года, кодовое имя Dolphin. В финальную версию Java Standard Edition 7 не были включены все ранее запланированные изменения. Согласно плану развития (план «Б»), включение нововведений будет разбито на две части: Java Standard Edition 7 (без лямбда-исчисления, проекта Jigsaw, и части улучшений Coin) и Java Standard Edition 8 (все остальное), намеченный на конец 2012 года.

В новой версии, получившей название Java Standard Edition 7 (Java Platform, Standard Edition 7), помимо исправления большого количества ошибок, было представлено несколько новшеств. Так, например, в качестве эталонной реализации Java Standard Edition 7 использован не проприетарный пакет JDK, а его открытая реализация OpenJDK, а сам релиз новой версии платформы готовился при тесном сотрудничестве инженеров Oracle с участниками мировой экосистемы Java, комитетом JCP (Java Community Process) и сообществом OpenJDK. Все поставляемые Oracle бинарные файлы эталонной реализации Java Standard Edition 7 собраны на основе кодовой базы OpenJDK, сама эталонная реализация полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с проприетарными продуктами. К другим нововведениям относится интеграция набора небольших языковых улучшений Java, развиваемых в рамках проекта Coin, добавлена поддержка языков программирования с динамической типизацией, таких, как Ruby, Python и JavaScript, поддержка загрузки классов по URL, обновлённый XML-стек, включающий JAXP 1.4, JAXB 2.2a и JAX-WS 2.2 и другие.

За 5 дней до выхода релиза Java Standard Edition 7 было обнаружено несколько серьёзных ошибок в горячей оптимизации циклов, которая включена по умолчанию и приводит виртуальную машину Java к краху. Специалисты Oracle найденные ошибки за столь короткий срок исправить не могли, но пообещали, что они будут исправлены во втором обновлении (Java 7 Update 2) и частично в первом.

ОСОБЕННОСТИ JAVA –ПРИЛОЖЕНИЯ

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

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

Особого упоминания требует такая черта языка JAVA, как универсальность. Джеймс Гослинг - автор языка JAVA - говорит о том, что современное программирование смещается в сторону разработки различных сетевых приложений. Ну а язык JAVA как нельзя лучше отвечает этим современным требованиям.

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

СКРИПТОВЫЕ ЯЗЫКИ И JAVA

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

Языки программирования на платформе Java:

  •  
    1. Скриптовый язык Groovy.

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

  •  
    1. API скрипты.

Новый набор API скриптов в Java SE 6, обеспечивающий обратную совместимость с Java SE 5 и содержащий небольшой набор интерфейсов и классов, предоставляет простой способ вызова из Java-кода скриптов, написанных на десятках языков. С его помощью вы можете загружать и вызывать внешние скрипты на этапе выполнения, динамически изменяя поведение приложения.

  •  
    1. Скриптовый язык Scala.

Scala может взаимодействовать с кодом, написанным на Java. Все классы из пакета java.lang уже подключены по умолчанию, в то же время другие должны быть подключены явно. Преимущество: скорость разработки программы. Недостаток: долгий старт на машине Java.

  •  
    1. Jscript.

Он предназначен для создания сценариев и является реализацией стандарта ECMAScript. Синтаксис JScript во многом аналогичен языку JavaScript от компании Netscape. JScript по умолчанию поддерживается в Windows Script Host (WSH), который в свою очередь по умолчанию устанавливается вместе с почти любой версией Windows. Если у вас слишком старая версия Windows, вы можете скачать WSH с сайта Microsoft и самостоятельно установить его.

  •  
    1. JavaScript.

JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания— что придаёт языку дополнительную гибкость.

Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

  • объекты, с возможностью интроспекции;

  • функции как объекты первого класса;

  • автоматическое приведение типов;

  • автоматическая сборка мусора;

  • анонимные функции.

  •  
    1. Скриптовый язык Python.

Python (питон) — интерпретируемый, объектно-ориентированный язык программирования высокого уровня. Он поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многонитевую обработку. Python портируем и работает почти на всех известных платформах. Существуют порты под Windows, все варианты UNIX (включая Linux), Mac OS и Mac OS X, Palm OS, OS/2 и т.д. При этом, в отличие от многих портируемых систем, на каждой платформе Python поддерживает все характерные для данной платформы технологии (например, Microsoft COM/DCOM).

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

  •  
    1. Скриптовый язык Ruby.

Ruby — интерпретируемый скриптовый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Ruby имеет большое количество средств для обработки текстов, для решения системных задач. Ruby является полностью свободным языком программирования с возможностью копирования, модификации и распространения. Ruby перенесён на множество платформ.

Ruby имеет простой и понятный синтаксис, позволяет обрабатывать исключения в стиле Java и Python, позволяет легко переопределять операторы, которые на самом деле являются методами. Ruby — полностью объектно-ориентированный язык программирования.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  •  
    1. http://www.script-coding.com/Browse.html

    2. http://elhow.ru/programmnoe-obespechenie/raznye-voprosy-pro-po/opredelenija-1/chto-takoe-java

    3. http://www.lvul.ru/chto-takoe-java/

    4. https://www.ibm.com/developerworks/ru/java/newto/

Просмотров работы: 719