maude

Language bindings for Maude

https://github.com/fadoss/maude-bindings

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

formal-methods maude python swig
Last synced: 6 months ago · JSON representation ·

Repository

Language bindings for Maude

Basic Info
Statistics
  • Stars: 23
  • Watchers: 4
  • Forks: 1
  • Open Issues: 0
  • Releases: 19
Topics
formal-methods maude python swig
Created about 6 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Language bindings for Maude

Language bindings for the Maude specification language using SWIG. They make use of a modified version of Maude extended with a model checker for system controlled by strategies, which is also accessible through the bindings.

The Python package is available at PyPI. After installing it using pip install maude, it can be directly used since Maude is embedded in the package:

python import maude maude.init() nat = maude.getModule('NAT') t = nat.parseTerm('1 + 2') t.reduce() print(t)

Bindings for other languages supported by SWIG can be built from this repository, but they have not been given specific support and testing. Specific instructions for some of them are available here.

Building

This repository includes the extended version of Maude as a submodule, which has to be cloned first with git submodule update --init or an equivalent Git command. To build the Python package, scikit-build-core is used through any of the standard commands:

python -m build # or pip wheel .

This will cause Maude to be built in the subprojects directory, for which the Meson build system, Ninja, and various external libraries and tools are required, as described in its repository. Alternatively, compiled versions of Maude as a library can be downloaded from its releases section and placed in their expected locations: * subprojects/maudesmc/installdir/lib for the libraries, and * subprojects/maudesmc/build for the config.h header file.

In this case or when building Maude directly from its subdirectory, CMAKE_ARGS="-DBUILD_LIBMAUDE=OFF" should be added before the previous command.

Bindings for other languages can also be built using CMake directly, where srcdir is the directory where the repository has been cloned, and language is one of the languages supported by SWIG:

cmake <srcdir> -DLANGUAGE=<language> cmake --build .

For some language targets this will be enough, but additional steps could be expected for others.

Documentation

Documentation for the Python package is available here, which can be largely extrapolated to other target languages. Javadoc-generated documentation is also available. In addition to these, the examples in the repository can be used as a reference for various topics:

  • Loading files, parsing terms, reducing, rewriting, rewriting with strategies, and searching in test.py.
  • Matching in match.py.
  • Applying rules selectively in apply.py.
  • Unification in unify.py.
  • Manipulating the rewrite graph in graph.py.
  • Model checking in modelcheck.py.
  • Narrowing in vunarrow.py.
  • Variant generation in variants.py.
  • Iterating over the arguments of a term in gui.py.
  • Building terms from symbols in buildTerm.py.
  • Inspecting modules in maudedoc.py.
  • Loading files and input raw text in loading.py.
  • Metalevel manipulations in metalevel.py.
  • Custom special operators in hooks.py.

Moreover, a tutorial on the library is available in the article Maude as a library: an efficient all-purpose programming interface, along with a description of its design and implementation.

Owner

  • Name: FADoSS
  • Login: fadoss
  • Kind: organization
  • Location: Madrid

Formal Analysis and Design of Software Systems group (Universidad Complutense de Madrid)

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
authors:
- family-names: Rubio
  given-names: Rubén
  orcid: https://orcid.org/0000-0003-2983-3404
title: Language bindings for Maude
version: 1.2.0
date-released: 2022-08-10
url: https://github.com/fadoss/maude-bindings
preferred-citation:
  type: conference-paper
  doi: 10.1007/978-3-031-12441-9_14
  authors:
    - family-names: Rubio
      given-names: Rubén
      orcid: https://orcid.org/0000-0003-2983-3404
  title: "Maude as a Library: An Efficient All-Purpose Programming Interface"
  conference:
    name: 14th International Workshop on Rewriting Logic and Applications (WRLA) 2022
    date-end: 2022-04-03
  year: 2022
  month: 7
  start: 274
  end: 294
  volume: 13252
  collection-title: Lecture Notes in Computer Science
  publisher:
    name: Springer

GitHub Events

Total
  • Release event: 1
  • Watch event: 6
  • Push event: 2
  • Fork event: 1
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 6
  • Push event: 2
  • Fork event: 1
  • Create event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 21
  • Total Committers: 1
  • Avg Commits per committer: 21.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
ningit 1****t 21

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 6
  • Total pull requests: 0
  • Average time to close issues: about 2 months
  • Average time to close pull requests: N/A
  • Total issue authors: 6
  • Total pull request authors: 0
  • Average comments per issue: 4.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jkhourybbn (1)
  • ozan-k (1)
  • canary00 (1)
  • UberPyro (1)
  • canary01 (1)
  • DanieleMarchei (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 694 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 2
  • Total versions: 17
  • Total maintainers: 1
pypi.org: maude

Python bindings for Maude

  • Versions: 17
  • Dependent Packages: 1
  • Dependent Repositories: 2
  • Downloads: 694 Last month
Rankings
Downloads: 10.0%
Dependent packages count: 10.1%
Dependent repos count: 11.5%
Average: 15.5%
Stargazers count: 16.1%
Forks count: 29.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/release.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • softprops/action-gh-release v1 composite
pyproject.toml pypi