Further reading
The KIELER documentation, the papers and theses behind SCCharts, and the languages it is related to, each with a line on what you will find there.
This guide teaches SCCharts as KIELER implements it today. The sources below give the full story: the original documentation, the research papers that define the language and its compiler, and the languages SCCharts grew out of or sits next to. The links were last checked in October 2026.
Where to start. For the syntax, the KIELER wiki’s Syntax page, read next to this guide’s cheat sheet. For the ideas behind the language, the PLDI 2014 paper SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications: it is short, readable, and explains why SCCharts is built the way it is.
How hard is it? The documentation and the tools are written for users. The papers are research papers: each entry below says whether you can read it with this guide behind you (readable), or whether it assumes a background in formal semantics (formal); the thesis is a long reference to dip into. Where a paper has a DOI, it is given as well: the DOI keeps working if the university’s download links move. For how this guide checks its own claims, see How this guide is checked.
KIELER’s documentation
Section titled “KIELER’s documentation”- KIELER semantics wiki: the official documentation of SCCharts and the KIELER tools, maintained with the source code.
- Syntax: the reference for the textual syntax, construct by construct, with KIELER’s diagram of each example. Brief, and in a few places out of date: for example, it says that strong aborts skip exit actions, but in KIELER’s compiler they run. This guide points out such differences where they matter.
- Quick Start Guide: a first chart (ABRO) in KIELER’s Eclipse application, with screenshots of each step: modelling, compiling, and simulating with the simulation view.
- VS Code Extensions: installing and using KIELER VS Code: opening the diagram, compiling, and simulating with the simulation view, its controls and trace export, with an annotated screenshot.
- Syntax: Annotations and Pragmas: every annotation and pragma that changes the diagram or the compilation.
- Syntax: Dataflow: dataflow regions, equations, instances of other charts and their diagrams.
- Syntax: Timed Automata: clocks,
deltaT,sleepT,periodand the timing annotations. It says@HardResetis the default forperiod; in KIELER’s compiler soft reset is. - Syntax: Hostcode: host code,
externand the#hostcodepragmas. - Syntax: Object Orientation: classes, methods, inheritance and policies.
- KIELER semantics on GitHub: the source code of the compiler,
the simulator and the grammar. The grammar files (
SCTX.xtext,KExpressions.xtext) are the final word on what the syntax allows. - KIELER on GitHub: every repository of the KIELER project, which Kiel University’s Real-Time and Embedded Systems group (page in German) runs.
- SCCharts Lab: the VS Code extension this guide recommends, with diagrams, a tick-by-tick simulator and live diagnostics. Source code on GitHub.
- KIELER VS Code: KIELER’s own VS Code extension, on the Open VSX registry.
Getting SCCharts compares the two.
SCCharts papers
Section titled “SCCharts papers”- Reinhard von Hanxleden, Björn Duderstadt, Christian Motika, Steven Smyth, Michael Mendler, Joaquín Aguado and others, SCCharts: Sequentially Constructive Statecharts for Safety-Critical Applications, PLDI 2014 (DOI). The paper that introduced SCCharts: the language, Core and Extended SCCharts, and how both are compiled to hardware and software. Readable: the language comes first, with examples; the formal parts can be skipped.
- Reinhard von Hanxleden, Michael Mendler, Joaquín Aguado and others, Sequentially Constructive Concurrency: A Conservative Extension of the Synchronous Model of Computation, DATE 2013 (DOI). The model of computation behind SCCharts: why sequential code within a thread and initialise–update–read between threads give determinacy. Formal. A longer version appeared in ACM Transactions on Embedded Computing Systems in 2014 (DOI), with the full definitions in the technical report 1308 (Kiel University, 2013).
- Christian Motika, Steven Smyth and Reinhard von Hanxleden, Compiling SCCharts: A Case-Study on Interactive Model-Based Compilation, ISoLA 2014 (DOI). How KIELER compiles an Extended SCChart step by step into Core SCCharts and then into code. Readable, and the background to From chart to C.
- Christian Motika, SCCharts: Language and Interactive Incremental Compilation, PhD thesis, Kiel University, 2017. The most complete account of the language and its compiler; sections 3.1 and 3.2 define the semantics that the KIELER wiki points to. Long: a reference to look things up in.
- Alexander Schulz-Rosengarten, Reinhard von Hanxleden, Frédéric Mallet, Robert de Simone and Julien
Deantoni, Time in SCCharts,
FDL 2018 (DOI). Clocks,
deltaT,sleepTand dynamic ticks: the basis of the time chapter. Readable, with examples. - Steven Smyth, Alexander Schulz-Rosengarten and Reinhard von Hanxleden, Practical Causality Handling for Synchronous Languages, DATE 2019 (DOI). Scheduling directives and causality views that help to find and fix causality problems, shown with SCCharts and KIELER. Readable once you know Why the compiler says no.
- Alexander Schulz-Rosengarten, Steven Smyth and Michael Mendler, Toward Object-oriented Modeling in SCCharts, ACM Transactions on Embedded Computing Systems, 2021 (DOI). Classes, inheritance and host objects in SCCharts: the background to Enums, structs and classes. Partly formal.
- Alexander Schulz-Rosengarten, Reinhard von Hanxleden, Marten Lohstroh, Soroush Bateni and Edward A. Lee, Modal Reactors, 2023. Modes of operation, with transitions between them, for the reactors of Lingua Franca (see below), by authors of SCCharts. For readers who know Lingua Franca.
Background
Section titled “Background”- David Harel, Statecharts: A Visual Formalism for Complex Systems, Science of Computer Programming, 1987. The paper that introduced statecharts: hierarchy, concurrency and the diagrams. Readable, and long: it builds up a digital wristwatch step by step.
- Charles André, Representation and Analysis of Reactive Behaviors: A Synchronous Approach, 1996. SyncCharts, the synchronous statecharts whose notation SCCharts inherits (strong and weak aborts, termination). A technical report, partly formal.
- Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic and Robert de Simone, The Synchronous Languages 12 Years Later, Proceedings of the IEEE, 2003 (DOI). A survey of Esterel, Lustre and Signal, their ideas and their industrial use. Readable.
Related languages
Section titled “Related languages”- Esterel, the imperative synchronous language whose ideas (signals, preemption, the tick) SCCharts takes over. Gérard Berry’s The Esterel v5 Language Primer teaches it; his The Constructive Semantics of Pure Esterel (draft book) is the background to SCCharts’ causality rules; Gérard Berry and Georges Gonthier, The Esterel Synchronous Programming Language: Design, Semantics, Implementation (Science of Computer Programming, 1992), is the classic paper; and Wikipedia has an overview.
- Lustre, the synchronous dataflow language behind SCCharts’ dataflow regions and its
->,preandfby. Nicolas Halbwachs, Paul Caspi, Pascal Raymond and Daniel Pilaud, The Synchronous Dataflow Programming Language Lustre, Proceedings of the IEEE, 1991 (DOI), and the Lustre page at Verimag. In Lustre,x = x + 1is a cycle; in a dataflow region of SCCharts it is an update. - SCADE, the industrial tool built on Lustre, used for safety-critical embedded software: Ansys SCADE Suite.
- Céu, “structured synchronous reactive programming”: an Esterel-like textual language with synchronous, deterministic concurrency and close integration with C, aimed at small embedded devices: ceu-lang.org and its source on GitHub.
- Lingua Franca, a coordination language for deterministic concurrent and distributed systems built from reactors, with code in C, Python, Rust and other languages: lf-lang.org and its publications, among them the modal reactors above.