MVEL - MVEL

MVEL
Mvel logo.png
VývojářiMike Brock a různí přispěvatelé
Stabilní uvolnění
2.3.0 / 15. června 2016 (2016-06-15)
Úložiště Upravte to na Wikidata
NapsánoJáva
Operační systémCross-platform
TypExpression Language (EL)
LicenceLicence Apache
webová stránkahttps://github.com/mvel/mvel

MVFLEX Expression Language (MVEL) je hybridní dynamický / statický typ, integrovatelný Výrazový jazyk a runtime pro Platforma Java. Projekt, který byl původně založen jako obslužný jazyk pro aplikační framework, je nyní vyvíjen zcela nezávisle.

MVEL se obvykle používá k vystavení základní logiky koncovým uživatelům a programátorům prostřednictvím konfigurace, jako je XML soubory nebo anotace. Může být také použit k jednoduché analýze JavaBean výrazy.

Modul runtime umožňuje provádění výrazů MVEL buď interpretačně, nebo prostřednictvím procesu předkompilace s podporou modulu runtime bytecode generace k odstranění režie.

Vzhledem k tomu, že MVEL je určen k rozšíření softwaru založeného na prostředí Java, půjčuje si většinu své syntaxe přímo z programovacího jazyka Java s několika drobnými rozdíly a dalšími funkcemi. Například: jako vedlejší účinek modelu psaní MVEL, který považuje odkazy na třídy a metody za běžné proměnné, je možné použít ukazatele třídy i funkce (ale pouze pro statické metody).

     millis = Systém.currentTimeMillis;     // získat millis     čas = millis();

MVEL také umožňuje, aby kolekce byly reprezentovány jako záhyby (nebo projekce) v a Lisp -jako syntaxe.

    namesOfParents = (rodič.název v (děti v zaměstnanci));

Ahoj svět příklad

     Systém.ven.tisk("Ahoj světe!");

MVEL spoléhá na obory názvů a tříd Java, ale nemá schopnost deklarovat obory názvů nebo třídy.

Příklad Quicksort

Zde je příklad Quicksort algoritmus implementovaný v MVEL 2.0, demonstrující skriptovací schopnosti jazyka.

import java.util. *;// hlavní algoritmus rychlého řazenídef quicksort(seznam) {    -li (seznam.velikost() <= 1) {         seznam;    }    jiný {         pivot = seznam[0];         concat(quicksort(($ v seznam -li $ < pivot)), pivot, quicksort(($ v seznam -li $ > pivot)));    }}// definovat způsob zřetězení seznamů.def concat(seznam1, pivot, seznam2) {    concatList = Nový ArrayList(seznam1);    concatList.přidat(pivot);    concatList.přidat vše(seznam2);    concatList;}// vytvoření seznamu pro seřazeníseznam = [5,2,4,1,18,10,15,1,0];// třídit!quicksort(seznam);

Viz také

externí odkazy