Tutorial 02: SCCharts
Preliminaries
SCCharts
Read and understand the following information about SCCharts:
- Lecture 20, Synchronous Languages WS13: http://rtsys.informatik.uni-kiel.de/~rt-teach/ws13/v-synch/lectures/lecture20-handout4.pdf
- Lecture 21, Synchronous Languages WS13: http://rtsys.informatik.uni-kiel.de/~rt-teach/ws13/v-synch/lectures/lecture21-handout4.pdf
Even so you must not understand every detail of the following two lectures you should read them to acquire additional information about the foundations of SCCharts. If you have questions about specific topics, don't hesitate to ask one of your supervisors.
- Lecture 22, Synchronous Languages WS13: http://rtsys.informatik.uni-kiel.de/~rt-teach/ws13/v-synch/lectures/lecture22-handout4.pdf
- Lecture 23, Synchronous Languages WS13: http://rtsys.informatik.uni-kiel.de/~rt-teach/ws13/v-synch/lectures/lecture23-handout4.pdf
Additional information about SCCharts within KIELER can be found here:
- PLDI Artifact submission: PLDI'14 Artifact on SCCharts
KIELER
Install and run a copy of KIELER. You should download the nightly semantics build http://rtsys.informatik.uni-kiel.de/~kieler/files/nightly/kieler/
(If you have already installed and set up your own kieler development environment, you're free to use your own set up but be sure to update your code content to an actual state.)
Tasks
T2A1: Important Thoughts
- Write down the difference between Extended SCCharts and Core SCCharts. Use your own words.
- What advantage has the core SCCharts normalization?
- Describe in own words what a basic block is.
- Which constraints do influence the ordering of a schedule?
T2A2: Modeling with SCCharts
Model the following SCChart using the textual SCChart language (*.sct).
T2A3: Extended Transformations
Transform all extended features of the SCChart in T2A2 to core variants. Explain in detail what features are only extended features and how you transformed them.
T2A4: Normalize!
Normalize your new SCChart.
T2A5: Sequentially Constructive Graphs
Draw the SCG corresponding to your SCChart of T2A4. Also include the dependency edges between the nodes. What can you say about the schedulability of the program?
T2A6: Hostcode
Use KIELER to model an SCCharts that calls the function tock() each second (use the input bool second as clock).
Translate the SCChart to its SCG, sequentialize it and eventually generate C code. Include the /tutorials/tock.h as header.
Inspect the C code. Look at the tick() function and find the call to tock().