Rahul Sharma (Editor)

MVEL

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Written in
  
Java

License
  
Apache License

Operating system
  
Cross-platform

Developer(s)
  
Mike Brock and Various Contributors

Stable release
  
2.3.0 / June 15, 2016 (2016-06-15)

Type
  
Expression Language (EL)

MVFLEX Expression Language (MVEL) is a hybrid dynamic/statically typed, embeddable Expression Language and runtime for the Java Platform. Originally started as a utility language for an application framework, the project is now developed completely independently.

Contents

MVEL is typically used for exposing basic logic to end-users and programmers through configuration such as XML files or annotations. It may also be used to parse simple JavaBean expressions.

The runtime allows MVEL expressions to be executed either interpretively, or through a pre-compilation process with support for runtime bytecode generation to remove overhead.

Since MVEL is meant to augment Java-based software, it borrows most of its syntax directly from the Java programming language with some minor differences and additional capabilities. For example: as a side effect of MVEL's typing model, which treats class and method references as regular variables, it is possible to use both class and function pointers (but only for static methods).

MVEL also allows collections to be represented as folds (or projections) in a Lisp-like syntax.

Hello world example

MVEL relies on Java namespaces and classes, but does not possess the ability to declare namespaces or classes.

Quicksort Example

Here is an example of the Quicksort algorithm implemented in MVEL 2.0, demonstrating the scripting capabilities of the language.

References

MVEL Wikipedia