Tiny (meta-)modeling framework
Find a file
2025-02-05 10:40:40 +01:00
api add type check when overwriting slot value 2025-01-29 16:16:59 +01:00
bootstrap (WIP) implementing CBD language... Meta-meta-model: Association inherits from Class. Matcher accepts pivot. Add generic graphviz renderer. 2024-11-07 09:46:29 +01:00
concrete_syntax Commit some outstanding changes. Add TODO for cleanup. 2025-01-27 16:03:45 +01:00
examples Commit some outstanding changes. Add TODO for cleanup. 2025-01-27 16:03:45 +01:00
framework Make OD-API for consistent for constraints, LHS patterns, RHS actions. 2024-11-07 11:05:06 +01:00
services merging (meta-)models works (but it's dirty!) 2024-12-03 17:58:03 +01:00
state merging (meta-)models works (but it's dirty!) 2024-12-03 17:58:03 +01:00
transformation rewriter: extra check to see if produced names are valid (meaning: serializable/parseable) 2024-12-12 13:27:24 +01:00
util parser prints line numbers AND gives an error if you use anonymous objects/links in LHS of a rule 2024-12-11 20:32:55 +01:00
.gitignore Add petrinet language 2024-11-21 12:10:28 +01:00
README.md rename branch 2025-02-05 10:40:40 +01:00
requirements.txt add jinja2-based renderer for object diagrams 2024-12-17 15:32:24 +01:00
TODO.txt add a todo thingy 2025-01-29 16:16:47 +01:00

muMLE

Tiny (meta-)modeling framework.

Features:

  • mostly textual concrete syntax
  • meta-modeling & constraint writing
  • conformance checking
  • model transformation primitives (match and rewrite)
  • rule-based model transformation
  • examples included:
    • Class Diagrams (self-conforming)
    • Causal Block Diagrams language
    • Petri Net language

Dependencies

  • Python 3.?
  • Python libraries:
    • Lark (for textual parsing)
    • Jinja2 (not a hard requirement, only for model-to-text transformation)

Development

The following branches exist:

  • mde2425 - the branch containing a snapshot of the repo used for the MDE assignments 24-25. No breaking changes will be pushed here. After the re-exams (Sep 2025), this branch will be frozen.
  • master - currently equivalent to mde2425 (this is the branch that was cloned by the students). This branch will be deleted after Sep 2025, because the name is too vague.
  • development - in this branch, new development will occur, primarily cleaning up the code to prepare for next year's MDE classes.