SWIG を使用した Maude 仕様言語の言語バインディング。これらは、戦略によって制御されるシステムのモデル チェッカーで拡張された Maude の修正バージョンを利用します。これにはバインディングを通じてアクセスすることもできます。
Python パッケージは PyPI で入手できます。 pip install maude
使用してインストールした後、Maude はパッケージに埋め込まれているため、直接使用できます。
import maude
maude . init ()
nat = maude . getModule ( 'NAT' )
t = nat . parseTerm ( '1 + 2' )
t . reduce ()
print ( t )
SWIG でサポートされている他の言語のバインディングは、このリポジトリから構築できますが、特定のサポートとテストは提供されていません。一部の具体的な手順については、こちらをご覧ください。
このリポジトリには、Maude の拡張バージョンがサブモジュールとして含まれており、最初にgit submodule update --init
または同等の Git コマンドを使用してクローンを作成する必要があります。 Python パッケージをビルドするには、次の標準コマンドのいずれかで scikit-build-core を使用します。
python -m build # or
pip wheel .
これにより、Maude がsubprojects
ディレクトリにビルドされます。これには、リポジトリに記載されているように、Meson ビルド システム、Ninja、およびさまざまな外部ライブラリとツールが必要です。あるいは、Maude のコンパイル済みバージョンをライブラリとしてリリース セクションからダウンロードし、予想される場所に配置することもできます。
subprojects/maudesmc/installdir/lib
config.h
ヘッダー ファイルのsubprojects/maudesmc/build
。この場合、またはサブディレクトリから Maude を直接ビルドする場合は、前のコマンドの前にCMAKE_ARGS="-DBUILD_LIBMAUDE=OFF"
を追加する必要があります。
他の言語のバインディングは、CMake を直接使用してビルドすることもできます。ここで、 srcdir
リポジトリが複製されたディレクトリであり、 language
SWIG でサポートされている言語の 1 つです。
cmake <srcdir> -DLANGUAGE=<language>
cmake --build .
一部の言語ターゲットではこれで十分ですが、他の言語ターゲットでは追加の手順が必要になる場合があります。
Python パッケージのドキュメントはここから入手できます。これは主に他のターゲット言語に当てはめることができます。 Javadoc で生成されたドキュメントも入手できます。これらに加えて、リポジトリ内の例は、さまざまなトピックの参照として使用できます。
test.py
での検索。match.py
でのマッチング。apply.py
でルールを選択的に適用します。unify.py
での統合。graph.py
で書き換えグラフを操作します。modelcheck.py
でのモデルチェック。vunarrow.py
での絞り込み。variants.py
でのバリアント生成。gui.py
内の項の引数を反復処理します。buildTerm.py
のシンボルから用語を構築します。maudedoc.py
内のモジュールを検査します。loading.py
に生のテキストを入力します。metalevel.py
でのメタレベルの操作。hooks.py
のカスタム特殊演算子。さらに、ライブラリに関するチュートリアルは、その設計と実装の説明とともに、記事「ライブラリとしての Maude: 効率的な汎用プログラミング インターフェイス」で入手できます。