روابط اللغة للغة مواصفات Maude باستخدام SWIG. إنهم يستخدمون نسخة معدلة من 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 .
بالنسبة لبعض الأهداف اللغوية، سيكون هذا كافيًا، ولكن يمكن توقع خطوات إضافية للآخرين.
تتوفر هنا وثائق حزمة بايثون، والتي يمكن استقراءها إلى حد كبير للغات الهدف الأخرى. الوثائق التي تم إنشاؤها بواسطة 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 as a Library: واجهة برمجة فعالة لجميع الأغراض ، بالإضافة إلى وصف لتصميمها وتنفيذها.