98-RelatedWork.tex 2.1 KB

12345678910
  1. \chapter{Related Work}
  2. \label{chapt:related_work}
  3. Zhaoyi Luo has developed BSML-mbeddr \cite{Zhaoyi2016}, which is an implementation of much of the BSML language within mbeddr, a textual DSL workbench that integrates into the C language. The focus was not on statecharts, but on BSML as a language itself. Many of the same semantic aspects as in SCCD are supported, and additionally, concurrency (including \textsc{Source/Destination Orthogonal} and \textsc{Non-Preemptive}) is supported. Combo-step semantics are (currently) not implemented. BSML-mbeddr does not feature an action language, instead, a model's datamodel and action code are written in C. BSML-mbeddr does not feature history states or timed transitions, but these could be implemented ``on top''.
  4. Adam Prout has developed a code-generator generator (CGG) \cite{prout2012code} for a family of languages defined by \emph{template semantics} \cite{niu2003template}, which preceded BSML. Template semantics is a parameterized operational semantics of hierarchical, non-orthogonal statecharts. Orthogonality is achieved with a set of compositional operators, working on components (individual non-orthogonal statecharts). The supported family of languages overlaps greatly with BSML, and is possibly larger, as even the semantics of Petri Nets can be described. BSML, however, works at a higher level of abstraction, offering a smaller set of semantic choices that are mostly orthogonal, making it easier to understand.
  5. There are also efforts going on at precisely describing the semantics of statecharts. SCXML \cite{W3C2015SCXML}, on which SCCD's syntax is based, is a standardized (W3C, 2015) XML-based format for statechart descriptions, with precise semantics. Multiple implementations exist, such as SCION \cite{beard2013developing} (JavaScript) and Qt SCXML \cite{qtscxml}. YAKINDU also provides an ``SCXML Domain'', allowing users to import/export models in the format, simulating and testing according to SCXML's semantics. Another standard is Precise Semantics of UML State Machines (PSSM) (OMG, 2019) \cite{pssm}, allowing for executable models.