Loading article…
![]() | |
| 開発者 | マイク・ブロックとさまざまな貢献者 |
|---|---|
| 安定版リリース | 2.3.0 / 2016年6月15日 |
| リポジトリ |
|
| 書かれた | ジャワ |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | 表現言語 (EL) |
| ライセンス | Apacheライセンス |
| Webサイト | https://github.com/mvel/mvel |
MVFLEX 式言語(MVEL) は、 Java プラットフォーム用のハイブリッド動的/静的型付けの埋め込み可能な式言語およびランタイムです。当初はアプリケーション フレームワークのユーティリティ言語として開始されましたが、現在では完全に独立して開発されているプロジェクトです。
MVEL は通常、 XMLファイルや注釈などの構成を通じてエンドユーザーやプログラマーに基本ロジックを公開するために使用されます。また、単純なJavaBean式を解析するためにも使用できます。
ランタイムでは、MVEL 式を解釈的に実行することも、ランタイムバイトコード生成をサポートしてオーバーヘッドを排除する事前コンパイル プロセスを通じて実行することもできます。
MVEL は Java ベースのソフトウェアを拡張することを目的としているため、いくつかの小さな違いと追加機能を除いて、ほとんどの構文を Java プログラミング言語から直接借用しています。たとえば、クラスとメソッドの参照を通常の変数として扱う MVEL の型付けモデルの副作用として、クラスと関数のポインターの両方を使用できます (ただし、静的メソッドの場合のみ)。
ミリス=システム。現在の時間ミリス;
// ミリ秒を取得
time = millis ();
MVEL では、コレクションをLispのような構文で折り畳み (または投影) として表現することもできます。
namesOfParents = (親.名前in (従業員内の子供));
Hello Worldの例
システム.out.println ( " Hello , world!" ) ;
MVEL は Java の名前空間とクラスに依存していますが、名前空間やクラスを宣言する機能はありません。
クイックソートの例
以下は、MVEL 2.0 で実装されたクイックソートアルゴリズムの例であり、この言語のスクリプト機能を示しています。
java.util.*をインポートします。
// メインのクイックソートアルゴリズム
def quicksort ( list ) { if ( list . size () <= 1 ) { list ; } else { pivot = list [ 0 ]; concat ( quicksort (( $ in list if $ < pivot )), pivot , quicksort (( $ in list if $ > pivot ))); } }
// リストを連結するメソッドを定義します。
def concat ( list1 , pivot , list2 ) { concatList = new ArrayList ( list1 ); concatList . add ( pivot ); concatList . addAll ( list2 ); concatList ; }
// ソートするリストを作成します
。list = [ 5 , 2 , 4 , 1 , 18 , 10 , 15 , 1 , 0 ];
// ソートします。quicksort
( list ) ;
参照
外部リンク
- MVEL 言語ガイド
- オリジナルウェブサイト(現在は利用できません)

