Ligações de linguagem para a linguagem de especificação Maude usando SWIG. Eles fazem uso de uma versão modificada do Maude estendida com um verificador de modelo para sistema controlado por estratégias, que também é acessível através de ligações.
O pacote Python está disponível em PyPI. Depois de instalá-lo usando pip install maude
, ele pode ser usado diretamente, pois o Maude está incorporado no pacote:
import maude
maude . init ()
nat = maude . getModule ( 'NAT' )
t = nat . parseTerm ( '1 + 2' )
t . reduce ()
print ( t )
Vinculações para outras linguagens suportadas pelo SWIG podem ser construídas a partir deste repositório, mas não receberam suporte e testes específicos. Instruções específicas para alguns deles estão disponíveis aqui.
Este repositório inclui a versão estendida do Maude como um submódulo, que deve ser clonado primeiro com git submodule update --init
ou um comando Git equivalente. Para construir o pacote Python, scikit-build-core é usado através de qualquer um dos comandos padrão:
python -m build # or
pip wheel .
Isso fará com que Maude seja compilado no diretório subprojects
, para o qual são necessários o sistema de compilação Meson, Ninja e diversas bibliotecas e ferramentas externas, conforme descrito em seu repositório. Alternativamente, versões compiladas do Maude como uma biblioteca podem ser baixadas de sua seção de lançamentos e colocadas nos locais esperados:
subprojects/maudesmc/installdir/lib
para as bibliotecas, esubprojects/maudesmc/build
para o arquivo de cabeçalho config.h
. Neste caso ou ao construir o Maude diretamente de seu subdiretório, CMAKE_ARGS="-DBUILD_LIBMAUDE=OFF"
deve ser adicionado antes do comando anterior.
Bindings para outras linguagens também podem ser construídas usando o CMake diretamente, onde srcdir
é o diretório onde o repositório foi clonado, e language
é uma das linguagens suportadas pelo SWIG:
cmake <srcdir> -DLANGUAGE=<language>
cmake --build .
Para alguns destinos linguísticos isto será suficiente, mas poderão ser esperadas medidas adicionais para outros.
A documentação do pacote Python está disponível aqui, que pode ser amplamente extrapolada para outras linguagens de destino. A documentação gerada pelo Javadoc também está disponível. Além destes, os exemplos do repositório podem ser usados como referência para diversos tópicos:
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
.Além disso, um tutorial sobre a biblioteca está disponível no artigo Maude como biblioteca: uma interface de programação eficiente para todos os fins , junto com uma descrição de seu design e implementação.