Find out what's new in the upcoming V2 release of SCCharts!
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
- You can now use vector values to assign arrays. (see Syntax#Vectors)
- Vectors can also be used in the dataflow models.
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.
- 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.
Major new features are:
- 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).