МВЭЛ
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
![]() | |
Разработчик(и) | Майк Брок и различные участники |
---|---|
Стабильная версия | 2.3.0
/ 15 июня 2016 г. |
Репозиторий | |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Язык выражений (EL) |
Лицензия | Лицензия Апач |
Веб-сайт | https://github.com/mvel/mvel |
Язык выражений MVFLEX (MVEL) — это гибридный динамически/статически типизированный встраиваемый язык выражений и среда выполнения для платформы Java . Первоначально проект начинался как служебный язык для платформы приложений, а теперь разрабатывается полностью независимо.
MVEL обычно используется для предоставления базовой логики конечным пользователям и программистам посредством конфигурации, такой как XML- файлы или аннотации . Его также можно использовать для анализа простых JavaBean выражений .
Среда выполнения позволяет выполнять выражения MVEL либо интерпретативно, либо посредством процесса предварительной компиляции с поддержкой генерации байт-кода во время выполнения для устранения накладных расходов.
Поскольку MVEL предназначен для расширения программного обеспечения на основе Java, он заимствует большую часть своего синтаксиса непосредственно из языка программирования Java с некоторыми незначительными отличиями и дополнительными возможностями. Например: в качестве побочного эффекта модели типизации MVEL, которая рассматривает ссылки на классы и методы как обычные переменные, можно использовать указатели как на классы, так и на функции (но только для статических методов).
millis = System.currentTimeMillis;
// get millis
time = millis();
MVEL также позволяет представлять коллекции в виде складок (или проекций) в синтаксисе, подобном Lisp .
namesOfParents = (parent.name in (children in employees));
Привет, мир, пример
[ редактировать ] System.out.println("Hello, world!");
MVEL опирается на пространства имен и классы Java, но не имеет возможности объявлять пространства имен или классы.
Пример быстрой сортировки
[ редактировать ]Вот пример алгоритма быстрой сортировки, реализованный в MVEL 2.0, демонстрирующий возможности языка сценариев.
import java.util.*;
// the main quicksort algorithm
def quicksort(list) {
if (list.size() <= 1) {
list;
}
else {
pivot = list[0];
concat(quicksort(($ in list if $ < pivot)), pivot, quicksort(($ in list if $ > pivot)));
}
}
// define method to concatenate lists.
def concat(list1, pivot, list2) {
concatList = new ArrayList(list1);
concatList.add(pivot);
concatList.addAll(list2);
concatList;
}
// create a list to sort
list = [5,2,4,1,18,10,15,1,0];
// sort it!
quicksort(list);
См. также
[ редактировать ]Внешние ссылки
[ редактировать ]- Руководство по языку MVEL
- оригинальный сайт (больше не доступен)