MVEL

MVEL
Información general
Tipo de programa Lenguaje de expresión
Desarrollador Mike Brock y varios colaboradores
Licencia licencia Apache
Idiomas inglés
Información técnica
Programado en Java
Plataformas admitidas Java
Versiones
Última versión estable 2.0.19 (19 de noviembre de 2010 (15 años, 6 meses y 18 días))
Enlaces

Lenguaje de expresión de MVFLEX (MVEL) es un lenguaje de expresión y runtime de tiempo de ejecución híbrido, de tipo dinámico/estático, e incrustable, para la Plataforma Java. Originalmente comenzó como un lenguaje de utilidad para un marco de aplicación, pero el proyecto se desarrolla ahora de forma completamente independiente.

MVEL se utiliza normalmente para exponer lógica básica para usuarios finales y programadores a través de configuración tal como archivos XML o anotaciones de Java. También puede utilizarse para analizar expresiones simples de JavaBean.

En tiempo de ejecución permite expresiones de MVEL para ejecutar, ya sea interpretativamente, o a través de un proceso generalmente pre-compilado con soporte para la generación de bytecode de tiempo de ejecución (runtime) y eliminar el overhead.

Ya que MVEL pretende aumentar el software basado en Java, toma la mayoría de su sintaxis directamente desde el lenguaje con algunas diferencias menores y capacidades adicionales de programación de Java. Por ejemplo: como un efecto secundario del modelo de escritura de MVEL, que trata las referencias de método y clase como variables regulares, es posible utilizar punteros de función y clase (pero solo para los métodos estáticos).

Ejemplos

     millis = System.currentTimeMillis;

     // get millis
     time = millis();

MVEL también permite representar las colecciones como pliegues (o proyecciones) en una sintaxis Lisp-like.

    namesOfParents = (parent.name in (hijos in empleados));// hijos in empleados correspondería a hijos de empleados en el lenguaje común

Ejemplo de Hola Mundo

     System.out.println("¡Hola, mundo!");

MVEL usa clases y espacios de nombres de Java, pero no posee la capacidad de declarar espacios de nombres o clases.

Ejemplo del algoritmo Quicksort

A continuación se muestra un ejemplo de algoritmo Quicksort implementado en MVEL 2.0, lo que demuestra las capacidades de scripting del lenguaje:

import java.util.*;

// algoritmo quicksort principal
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 el método para concatenar listas.
def concat(list1, pivot, list2) {
    concatList = new ArrayList(list1);
    concatList.add(pivot);
    concatList.addAll(list2);
    concatList;
}

// crear una lista para ordenar
list = [5,2,4,1,18,10,15,1,0];

// sort it!
quicksort(list);

Véase también

Enlaces externos


Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.