МВЭЛ - MVEL

МВЭЛ
Mvel logo.png
Разработчики)Майк Брок и разные участники
Стабильный выпуск
2.3.0 / 15 июня 2016 г. (2016-06-15)
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
Операционная системаКроссплатформенность
ТипЯзык выражений (EL)
ЛицензияЛицензия Apache
Интернет сайтhttps://github.com/mvel/mvel

Язык выражений MVFLEX (MVEL) - это гибридный динамический / статически типизированный, встраиваемый Язык выражения и время выполнения для Платформа Java. Первоначально проект был задуман как служебный язык для фреймворка приложений, а сейчас разрабатывается полностью независимо.

MVEL обычно используется для демонстрации базовой логики конечным пользователям и программистам посредством конфигурации, такой как XML файлы или аннотации. Его также можно использовать для разбора простых JavaBean выражения.

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

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

     Миллис = Система.currentTimeMillis;     // получаем миллисекунды     время = Миллис();

MVEL также позволяет представлять коллекции в виде складок (или проекций) в Лисп -подобный синтаксис.

    имена родителей = (родитель.имя в (дети в сотрудники));

Привет, мир, пример

     Система.из.println("Привет, мир!");

MVEL полагается на пространства имен и классы Java, но не обладает способностью объявлять пространства имен или классы.

Пример быстрой сортировки

Вот пример Быстрая сортировка Алгоритм, реализованный в MVEL 2.0, демонстрирует скриптовые возможности языка.

импорт java.util. *;// основной алгоритм быстрой сортировкиdef быстрая сортировка(список) {    если (список.размер() <= 1) {         список;    }    еще {         вращаться = список[0];         concat(быстрая сортировка(($ в список если $ < вращаться)), вращаться, быстрая сортировка(($ в список если $ > вращаться)));    }}// определяем метод объединения списков.def concat(list1, вращаться, list2) {    concatList = новый ArrayList(list1);    concatList.Добавить(вращаться);    concatList.добавить все(list2);    concatList;}// создаем список для сортировкисписок = [5,2,4,1,18,10,15,1,0];// сортируем!быстрая сортировка(список);

Смотрите также

внешняя ссылка