maude bindings
v1.4.0
使用 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
用于库,以及subprojects/maudesmc/build
为config.h
头文件。在这种情况下或直接从其子目录构建 Maude 时,应在上一个命令之前添加CMAKE_ARGS="-DBUILD_LIBMAUDE=OFF"
。
其他语言的绑定也可以直接使用 CMake 构建,其中srcdir
是克隆存储库的目录, language
是 SWIG 支持的语言之一:
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 作为一个库:一个高效的通用编程接口提供了有关该库的教程,以及其设计和实现的描述。