MVEL - MVEL

MVEL
Mvel logo.png
Geliştirici (ler)Mike Brock ve Çeşitli Katkıda Bulunanlar
Kararlı sürüm
2.3.0 / 15 Haziran 2016 (2016-06-15)
Depo Bunu Vikiveri'de düzenleyin
YazılmışJava
İşletim sistemiÇapraz platform
Türİfade Dili (EL)
LisansApache Lisansı
İnternet sitesihttps://github.com/mvel/mvel

MVFLEX İfade Dili (MVEL), karma dinamik / statik tipte, gömülebilir İfade Dili ve Çalışma süresi için Java Platformu. Başlangıçta bir uygulama çerçevesi için bir yardımcı dil olarak başlatılan proje artık tamamen bağımsız olarak geliştirilmektedir.

MVEL tipik olarak temel mantığı son kullanıcılara ve programcılara aşağıdaki gibi yapılandırma yoluyla göstermek için kullanılır: XML dosyalar veya ek açıklamalar. Basit ayrıştırmak için de kullanılabilir JavaBean ifade.

Çalışma zamanı, MVEL ifadelerinin yorumlamalı olarak veya çalışma zamanı desteğiyle bir ön derleme süreci aracılığıyla yürütülmesine izin verir bayt kodu ek yükü kaldırmak için nesil.

MVEL, Java tabanlı yazılımı artırmak için tasarlandığından, sözdiziminin çoğunu bazı küçük farklılıklar ve ek yeteneklerle doğrudan Java programlama dilinden ödünç alır. Örneğin: MVEL'in sınıf ve yöntem referanslarını normal değişkenler olarak ele alan tipleme modelinin bir yan etkisi olarak, hem sınıf hem de işlev işaretçileri kullanmak mümkündür (ancak yalnızca statik yöntemler için).

     milis = Sistemi.currentTimeMillis;     // milis al     zaman = milis();

MVEL aynı zamanda koleksiyonların bir katlama (veya çıkıntı) olarak temsil edilmesini sağlar. Lisp -like sözdizimi.

    namesOfParents = (ebeveyn.isim içinde (çocuklar içinde çalışanlar));

Merhaba dünya örneği

     Sistemi.dışarı.println("Selam Dünya!");

MVEL, Java ad alanlarına ve sınıflarına dayanır, ancak ad alanlarını veya sınıfları bildirme yeteneğine sahip değildir.

Hızlı Sıralama Örneği

İşte bir örnek Hızlı sıralama MVEL 2.0'da uygulanan ve dilin komut dosyası oluşturma yeteneklerini gösteren algoritma.

ithalat java.util. *;// ana hızlı sıralama algoritmasıdef hızlı sıralama(liste) {    Eğer (liste.boyut() <= 1) {         liste;    }    Başka {         eksen = liste[0];         concat(hızlı sıralama(($ içinde liste Eğer $ < eksen)), eksen, hızlı sıralama(($ içinde liste Eğer $ > eksen)));    }}// listeleri birleştirmek için yöntem tanımlayın.def concat(liste1, eksen, liste2) {    concatList = yeni Dizi Listesi(liste1);    concatList.Ekle(eksen);    concatList.hepsini ekle(liste2);    concatList;}// sıralamak için bir liste oluşturunliste = [5,2,4,1,18,10,15,1,0];// sırala!hızlı sıralama(liste);

Ayrıca bakınız

Dış bağlantılar