# Wiki source code of SCL Transformation

Last modified by Richard Kreissig on 2023/09/14 11:14
Export
Office Formats
Export as PDF Export as ODT Export as RTF
Other Formats

Select the pages to export:

select all/ none

Legend:
  Created Page
  Modified Extension Page
  Clean Extension Page

Export as HTML

Show last authors

author | version | line-number | content
--- | --- | --- | ---
|  | 1 | == Deprecated since 0.12 ==
|  | 2 | This article is deprecated. The described features are no longer available in current releases.
|  | 3 |
|  | 4 |
|  | 5 |
|  | 6 | {{toc/}}
|  | 7 |
|  | 8 | = Core SCChart to SCL Transformation =
|  | 9 |
|  | 10 | //coming soon...//
|  | 11 |
|  | 12 | = SCL Transformation Optimization =
|  | 13 |
|  | 14 | The (naive) generated SCL code can be optimized. Several optimizations are implemented or planned.
|  | 15 |
|  | 16 | For the following optimizations two assuptions are made:
|  | 17 |
|  | 18 | * A transition does not require an explicit goto instruction
|  | 19 | * A thread terminates, iff its parallel block is exited (via the next par statement or join)
|  | 20 |
|  | 21 | The optimization level can be specified in the CoreToSCLTransformation class.
|  | 22 |
|  | 23 | (% class="wrapped" %)
|  | 24 | |=(((
|  | 25 | Optimization
|  | 26 | )))|=(((
|  | 27 | Description
|  | 28 | )))
|  | 29 | |(((
|  | 30 | OPTIMIZE_GOTO
|  | 31 | )))|(((
|  | 32 | Removes all goto instructions, that target a label, that follows that goto.
|  | 33 | )))
|  | 34 | |(% colspan="1" %)(% colspan="1" %)
|  | 35 | (((
|  | 36 | OPTIMIZE_LABEL
|  | 37 | )))|(% colspan="1" %)(% colspan="1" %)
|  | 38 | (((
|  | 39 | Removes all unreferenced labels.
|  | 40 | )))
|  | 41 | |(% colspan="1" %)(% colspan="1" %)
|  | 42 | (((
|  | 43 | OPTIMIZE_SELFLOOP
|  | 44 | )))|(% colspan="1" %)(% colspan="1" %)
|  | 45 | (((
|  | 46 | If a state has only one outgoing non-default transition, the expression of that transition is negated, the transition target is changed to itself and the implicit selfloop is deleted. So, if the original expression is true, the sequential control flow is used to proceed and no goto jump is necessary.
|  | 47 | )))
|  | 48 | |(% colspan="1" %)(% colspan="1" %)
|  | 49 | (((
|  | 50 | OPTIMIZE_STATEPOSITION
|  | 51 |
|  | 52 | (temporary deactivated)
|  | 53 | )))|(% colspan="1" %)(% colspan="1" %)
|  | 54 | (((
|  | 55 | In some cases label and goto instructions can be removed, if the states in a region are ordered differently. This optimization checks for redundant jumps and changes the order of the states if possible and necessary.
|  | 56 | )))
|  | 57 | |(% colspan="1" %)(% colspan="1" %)
|  | 58 | (((
|  | 59 | OPTIMIZE_SINGLETRANSITIONS
|  | 60 |
|  | 61 | (planned)
|  | 62 | )))|(% colspan="1" %)(% colspan="1" %)
|  | 63 | (((
|  | 64 |
|  | 65 | )))
|  | 66 | |(% colspan="1" %)(% colspan="1" %)
|  | 67 | (((
|  | 68 | OPTIMIZE_WTOTRANSITIONS
|  | 69 |
|  | 70 | (planned)
|  | 71 | )))|(% colspan="1" %)(% colspan="1" %)
|  | 72 | (((
|  | 73 |
|  | 74 | )))

# Quick Links

KIELER on GitHub
RTSYS Homepage

XWiki 14.4.7