Skip to content

dsl4sc

dsl4sc is a domain-specific language, based on LDLf, for defining and verifying state transition models for event processing.

Command-line tools

rulessat

usage: rulessat <model>.dsl

rulessat solves the satisfiability of the input DSL4SC model included in <model>.dsl and returns either valid, satisfiable, or unsatisfiable.

See this manual for the detail.

rulesmc

usage: rulesmc -m <model>.dsl <property>.dsl

Given a model and a property in DSL4SC, rulesmc checks whether modelproperty (entailment) holds or not.
In case you need to examine if property can hold, that is, modelproperty is satisfiable (reachability), invoke rulesmc with the --reachability option.

See this manual for the detail.

rules2scxml

usage: rules2scxml <model>.dsl

rules2scxml translates the input DSL4SC model into an equivalent UML statechart representation in the SCXML format.

As a remark, rules2scxml performs translation through several intermediate stages, at each of which translation can be terminated. Refer to this for the detail.

safeguard

usage: safeguard --spec <model>.dsl <code>.js

safeguard generate pre/post conditions from <model>.dsl for event-handlers defined in <code>.js, and insert them into the code.

Models in DSL4SC

Each model definition should conform to the DSL4SC grammar.

DSL4SC grammar (alt: html pdf)

Note that LDLf-related parts, namely ldl_formula and ldl_path, of the grammar is defined separetely elsewhere.

As a remark, there exists another simplified version of the grammar, called the DSL4SC core grammar, which is used internally by the tools listed above.

DSL4SC core grammar (alt: html pdf)