Panic!

Get me back to the home page!


Navigation

Skip to end of metadata
Go to start of metadata

 
Sequentially Constructive Charts (SCCharts)

 

SCCharts [5] is new visual synchronous language that is designed for specifying safety-critical reactive systems. SCCharts uses a new statechart notation similar to Harel Statecharts [3] and provides deterministic concurrency based on a synchronous model of computation (MoC), without restrictions common to previous synchronous MoCs like the Esterel constructive semantics [2].  Specifically, we lift earlier limitations on sequential accesses to shared variables, by leveraging the sequentially constructive MoC [4]. Thus SCCharts in short are SyncCharts [1] syntax plus Sequentially Constructive semantics.

The key features of SCCharts are defined by a very small set of elements, the Core SCCharts, consisting of state machines plus fork/join concurrency.

Conversely, Extended SCCharts contain a rich set of advanced features, such as different abort types, signals, history transitions, etc., all of which can be reduced via semantics preserving model-to-model (M2M) transformations into Core SCCharts. Extended SCCharts features are syntactic sugar because they can be expressed by a combination of Core SCCharts features.

 

 




On the one hand this eases the compilation and makes it more robust because it reduces its complexity. On the other hand, using Extended SCCharts features, a modeler is able to abstract away complexity of his or her SCCharts model which increases robustness and readability of a model. This approach enables a simple yet efficient compilation strategy and aids verification and certification.

 

 

[1] C. André, Semantics of SyncCharts, Technical Report ISRN I3S/RR-2003-24-FR, I3S Laboratory, Sophia-Antipolis, France, April 2003.

[2] G. Berry, The foundations of Esterel, In G. Plotkin, C. Stirling, and M. Tofte, editors, Proof, Language, and Interaction: Essays in Honour of Robin Milner, pages 425-454, Cambridge, MA, USA, 2000.

[3] D. Harel, Statecharts: A visual formalism for complex systems, Science of Computer Programming, 8(3):231-274, June 1987.

[4] R. von Hanxleden, M. Mendler, J. Aguado, B. Duderstadt, I. Fuhrmann, C. Motika, S. Mercer, and O. O'Brien, Sequentially Constructive Concurrency - A conservative extension of the synchronous model of computation, In Proc. Design, Automation and Test in Europe Conference (DATE'13), Grenoble, France, March 2013.

[5] R. von Hanxleden, B. Duderstadt, C. Motika, S. Smyth, M. Mendler, J. Aguado, S. Mercer, and O. O’Brien. SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications. In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’14), Edinburgh, UK, June 2014. (pdf)

Downloads

Downloads - KIELER SCCharts Product

The KIELER SCCharts Product includes the SCCharts editor and compiler.

Release

KIELER SCCharts Product v. 0.11.0 (2014-02-28, based on Eclipse 4.3 Kepler). Available platforms:

Nightly Builds

 


Sequentially Constructive MoC

In contrast to SyncCharts (see [1] Charles André) a signal (or variable) in SCCharts is allowed to be emitted with different values in the same macro tick (if the emissions are schedulable according to the SC MoC). The following example is forbidden in SyncCharts but not in SCCharts.

SyncCharts: x cannot be absent and present in the same macro tick.
SCCharts: Deterministic ordering possible: If x is false then take the transition and set x to true.

Core & Extended SCCharts

A core SCChart is composed of elements of a minimal set of constructs. Additional constructs and syntactical sugar (f.e. actions, suspend) are introduced in extended SCCharts. Every extended SCCharts can be transformed into a core SCChart.

 

Core SCChartExtended SCChartsGraphical comparison
  • Simple States
  • Hierarchical States
    (aka Composite States)
  • Regions
  • Transitions (weak abort)
  • Immediate Transitions
  • Normal Termination 
  • Variables (primitive types)
  • Interface Declaration

 

Core SCCharts +

  • Connector (aka Choice)
  • Strong Abort
  • Weak Abort
  • History Transition
  • Suspension
  • Entry Action
  • During Action (aka Inner Action)
  • Exit Action
  • Signal
  • Pre
  • Count Delay
  • Conditional Termination
  • Initialization
  • Complex Final State
  • Deferred Transition

[click to enlarge]

Modeling & Compiling SCCharts

SCCharts can be modeled using our KIELER SCChrats editor and compiler (download). The modeling editor is a textual editor based on the itemis Xtext framework. The language used to model SCCharts textually is called SCT and documented here. A quick start guide introducing first steps from downloading over modeling to compiling SCCharts can be found here.

Project Status

Subproject/ExtensionProgress Released
SCCharts Editor (*.sct)Implemented and tested 0.9.0
SCG EditorImplemented and tested 0.9.0
SCL EditorImplementation not yet finished 

planned for 0.11.0

Extended 2 Core SCChartsImplemented, not yet fully tested 0.9.0
Core 2 Normalized SCChartsImplemented, not yet fully tested (some known bugs) 0.9.0
Normalized SCCharts 2 SCGImplemented, not yet fully tested (some known bugs) 0.9.0
SCG 2 Sequential SCG

Implemented and partly tested,

straightforward scheduler for 0.9.0 release,

enhanced scheduler planned for 0.10.0 release.

 0.9.0
SCG 2 C

Implemented by transformation via common S language

(this can also be translated into Java -> SJL)

 0.9.0
Online Compiler and Command Line ToolsFinished, available in nightly build planned for 0.10.0
SimulationA full featured simulation is currently being developed planned for 0.10.0

 

Known Limitations

  • Normalization may result in conditions where there actually is no conditions, this should optimized manually
  • SCG Generation currently produces unoptimized hierarchy levels, e.g., fork nodes with just one successor node should be eliminated
  • Scheduling of unconnected SCG exit nodes is currently not possible
  • No labels