Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Find out what's new in the upcoming V2 release of SCCharts!

Table of Contents

What is new

...

in SCCharts Version 1.0?

Controlflow / Dataflow Hybrid-Models

  • You can now add dataflow regions to your SCCharts models (see Syntax#Dataflow)

Semantic Comments

  • You can now add semantic comments to your SCCharts models (see Syntax#Comments)
  • You can also alter the style of the comments to mark POI in your program

New Reference / Module Support / Experimental Inheritance

  • The reference and module support for SCCharts has been reworked (see Syntax#References)
  • The content assist will help the modeler with the model bindings
  • Multiple SCCharts models can be stored in one file
  • SCCharts now supports experimental inheritance

For Region

  • Regions can be duplicated automatically (see Syntax#ForRegions)
  • For regions have access a unique iterator variable

Vectors

Further Experimental Features

  • Added Scheduling Directives
  • Added Probabilistic Transitions

New Expressions

  • Expression language now supports infix assignment operators
  • Expression language now supports bitwise xor and bitwise not
  • Expression language now supports shift operators
  • Expression language now supports the ternary conditional operator

...

  • Operator precedences are now correctly mapped to the kexpressions model structure
  • Improved host code expressions support 

New Annotations & Pragmas

...

  • Added pragma support to differ between model element annotations and file specific pragmas
  • Added unicode pragmas
  • Added compiler pragmas
  • Added generic layout annotations

SCCharts Syntax Changes

  • Primes can be used in identifier
  • Hostcode now uses accent grave (`)
  • Function call syntax with angle brackets is considered deprecated. It can still be accessed with the extern keyword
  • Semicolon now exclusively stands for the sequence operator. By default you don't need a semicolon as line/command delimiter.

What is new in KIELER SCCharts Version 1.0?

New Compiler Framework (a.k.a. KiCo 3.0 a.k.a. KiCool)

  • Compilation systems are now models which can be configured and instantiated at run-time
  • Redone all associated views and pre-configured systems and processors

New Code Generation

  • The code generation now creates functions that can handle different status instances of a program.
  • You can toggle additional debug comments which are printed as comments into the generated code.

What is new to the KIELER SCCharts workflow?

New Warnings & Errors

  • Detailed reference warnings
  • Label shadowing

Project Management

Working with SCCharts now integrates better in the Eclipse workflow by providing new wizards and an incremental project builder.

There are wizards for SCCharts projects on the one hand and different files on the other hand. The file wizards are used, e.g., to create files for the new configuration DSLs.

The SCCharts project wizard is a flexible approach to create a project for some target platform that is ready to be deployed. Therefore the wizard references another project wizards (e.g. from the CDT or JDT) to integrate with other tooling. After the referenced wizard has created the project, additional files are added to work with SCCharts. These files include a model file and configuration files for the new incremental project builder.

The incremental project builder is run by Eclipse either in the background when resources changes (Project > Build automatically), or manually by the user (Project > Build Project).
Several tasks are performed to build a project:

  • Compilation of models
  • Generation and compilation of simulation code, typically for each compiled model
  • Processing of templates and generation of wrapper code

What tasks are performed exactly when a project is build can be configured in a new DSL (kibuild files).

The new incremental project builder replaced the KiCo launch configuration that was used before to compile models and generate wrapper code.

  • The model status is generally saved to a dedicated struct.
  • Added new state-based code generation approach for C 
  • Added new lean state-based code generation approach for C
  • There now exist modular compilation systems for all supported compilation approaches
    • Netlist-based C
    • Netlist-based Java
    • Priority-based C
    • Priority-based Java
    • State-based C
    • Lean State-based C
  • All compilation systems have additional variants for simulation and tests

New Processors

  • Besides the mandatory processors for the a.m. code generators there are several optional new processors for academic and experimental purposes
    • generic SSA
    • Loop analyses and compiler optimizations (e.g. copy & constant propagation)
    • External compiler invocation
    • Arduino deployment
    • Eclipse project setups

New Warnings & Errors

  • Detailed reference warnings
  • Label shadowing

Integrated Simulation

The simulation backend has been rewritten to be more lightweight, flexible and transparent and to better integrate in the workflow.

...

  • simulation of multiple models at once that interact with each other
  • starting the simulation with precompiled executables
  • support for arrays
  • more user friendly interaction with the simulation
  • a DSL (kisim files) to configure complex simulation setups

Simulation Visualization

The current state of a running simulation can be displayed by setting attributes of elements in an SVG image. For instance it is possible to set the color or position of elements based on the value of a variable in the simulation.
Furthermore it is possible to interact with SVG elements to control the simulation and set variable values. This way it is possible to define buttons in the SVG to play, pause, step or stop the simulation, as well as setting variables.

To use these features, an SVG image has to be created, in which the elements that should be animated must have a unique id. Afterwards the interactions and animations for these elements are defined using a DSL (kivis files).

Interactive Model-Based Compiler

...