การผูกภาษาสำหรับภาษาข้อกำหนดม้อดโดยใช้ 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 build, 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 as a Library: an suitable all-Purpose programming interface พร้อมด้วยคำอธิบายของการออกแบบและการนำไปใช้งาน