MVFLEX Expression Language (MVEL) es un lenguaje de expresiones y entorno de ejecución híbrido, dinámico/estático, integrable para la plataforma Java . Originalmente concebido como un lenguaje de utilidad para un marco de aplicaciones, el proyecto ahora se desarrolla de forma completamente independiente.
MVEL se utiliza normalmente para exponer la lógica básica a los usuarios finales y programadores mediante configuraciones como archivos XML o anotaciones . También puede utilizarse para analizar expresiones JavaBean sencillas.
El entorno de ejecución permite que las expresiones MVEL se ejecuten de forma interpretativa o mediante un proceso de precompilación con soporte para la generación de código de bytes en tiempo de ejecución para eliminar la sobrecarga.
Dado que MVEL está diseñado para complementar el software basado en Java, toma prestada la mayor parte de su sintaxis directamente del lenguaje de programación Java, con algunas diferencias menores y capacidades adicionales. Por ejemplo: como efecto secundario del modelo de tipado de MVEL, que trata las referencias a clases y métodos como variables normales, es posible usar punteros tanto a clases como a funciones (pero solo para métodos estáticos).
milis = Sistema . horaactualMillis ;// Obtener milisegundos tiempo = millis ();MVEL también permite representar colecciones como pliegues (o proyecciones) en una sintaxis similar a la de Lisp .
nombresDeLosPadres = ( padre . nombre en ( hijos en empleados ));Ejemplo de "Hola mundo"
System.out.println ( " ¡ Hola, mundo! " ) ;MVEL se basa en los espacios de nombres y las clases de Java, pero no tiene la capacidad de declarar espacios de nombres o clases.
Ejemplo de Quicksort
Aquí se muestra un ejemplo del algoritmo Quicksort implementado en MVEL 2.0, que demuestra las capacidades de scripting del lenguaje.
import java.util.* ;// El algoritmo principal de ordenación rápida def quicksort ( lista ) { if ( lista . size () <= 1 ) { lista ; } else { pivot = lista [ 0 ]; concat ( quicksort (( $ en lista si $ < pivot )), pivot , quicksort (( $ en lista si $ > pivot ))); } }// Define un método para concatenar listas. def concat ( lista1 , pivot , lista2 ) { concatList = new ArrayList ( lista1 ); concatList . add ( pivot ); concatList . addAll ( lista2 ); concatList ; }// Crea una lista para ordenar lista = [ 5 , 2 , 4 , 1 , 18 , 10 , 15 , 1 , 0 ];// ¡Ordénalo! quicksort ( lista );Véase también
Enlaces externos
- Guía de idiomas MVEL
- Sitio web original (ya no está disponible)
- Lenguajes de scripting
- Software libre programado en Java.
- Software que utiliza la licencia Apache.
- Temas básicos de lenguajes de programación