Changes for page Kieler Compiler

Last modified by Richard Kreissig on 2023/09/14 10:52

From version 26.1
edited by cmot
on 2014/06/26 15:14
Change comment: There is no comment for this version
To version 41.1
edited by Richard Kreissig
on 2023/09/14 10:52
Change comment: There is no comment for this version

Summary

Details

Page properties
Parent
... ... @@ -1,0 +1,1 @@
1 +KIELER.SCCharts (DeprecatedHistorical Documentation & Features).WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.cmot
1 +XWiki.stu230980
Content
... ... @@ -1,4 +1,8 @@
1 -{{panel title="Project Overview" borderStyle="dashed"}}
1 +Deprecated since 0.13
2 +This article is deprecated. The described features are no longer available in current releases.
3 +
4 +== Project Overview ==
5 +
2 2  Responsible:
3 3  
4 4  * [[Christian Motika>>url:http://www.informatik.uni-kiel.de/rtsys/kontakt/cmot/||shape="rect"]], [[Steven Smyth>>url:http://www.informatik.uni-kiel.de/rtsys/kontakt/ssm/||shape="rect"]]
... ... @@ -7,12 +7,11 @@
7 7  
8 8  * none yet
9 9  
10 -**To see the KielerCompiler in action, we provide an Online SCCharts Compiler [[here>>doc:Online Compiler]].**
11 -{{/panel}}
14 +**To see the KielerCompiler in action, we provide an Online SCCharts Compiler [[here>>doc:KIELER.SCCharts (DeprecatedHistorical Documentation & Features).SCCharts (pre 1\.0).Online Compiler.WebHome]].**
12 12  
13 13  = Kieler Compiler (KiCo) =
14 14  
15 -In order to integrate and be able to evaluate our compiler chain from SCCharts to C or VHDL code we use the KiCo project as a generic framework that allows to register setp-by-step transformations on EObjects. These can then be handled by the generic KIEM KiCo DataComponent.
18 +In order to integrate and be able to evaluate our compiler chain from SCCharts to C or VHDL code we use the KiCo project as a generic framework that allows to register setp-by-step transformations on EObjects. These can then be handled by the generic KIEM KiCo DataComponent. **To see the KielerCompiler in action, we provide an Online SCCharts Compiler [[here>>url:http://www.sccharts.com/||shape="rect"]].**
16 16  
17 17  
18 18  
... ... @@ -22,11 +22,18 @@
22 22  
23 23  The KIELER Compiler (KiCo) project allows to register step-by-step model transformations on EObjects that could be written in Xtend or Java. These transformations are registered using an extension point provided (see below). After registering transformations these can be used by simply call the KielerCompiler compilation method as also explained further below.
24 24  
28 +(% class="wrapped" %)
25 25  |=(((
30 +(% class="content-wrapper" %)
31 +(((
26 26  [[image:attach:IMAG4642.jpg]]
33 +)))
27 27  )))|=(((
35 +(% class="content-wrapper" %)
36 +(((
28 28  [[image:attach:KiCo.jpg]]
29 29  )))
39 +)))
30 30  
31 31  == Extension Point ==
32 32  
... ... @@ -41,10 +41,12 @@
41 41  )))
42 42  1. Add the extension
43 43  
54 +{{{de.cau.cs.kieler.kico.transformation}}}
44 44  
45 -{{{de.cau.cs.kieler.kico.transformation}}}(((
56 +(((
46 46  
47 47  )))
59 +
48 48  1. (((
49 49  Add one of the following extension element
50 50  
... ... @@ -51,6 +51,7 @@
51 51  [[image:attach:KiCo2.jpg]]
52 52  )))
53 53  
66 +(% class="wrapped" %)
54 54  |=(((
55 55  Extension Element
56 56  )))|=(((
... ... @@ -121,12 +121,12 @@
121 121   </extension>
122 122  {{/code}}
123 123  
124 -
125 125  
126 126  == Compilation ==
127 127  
128 128  Once a bunch of model transformations are registered, these can simply be called using the KiCo central "KielerCompiler" class with its method compile(). This will be given a List<String> of transformation IDs or a comma separated String of transformation IDs as the first parameter. The second parameter is the EObject that is being transformed. It should meet the signature of the first model transformation called. Note that the actual model transformations that are done may vary because KiCo will automatically inspect the dependencies of each transformation requested (deep-recursively). If you do not like this to happen as an advanced user you can use a third parameter that will skip this autocompletion. Note that if you switch this off also NO transformation groups can be processed. Here is an overview and examples how to use the compile() method:
129 129  
142 +(% class="wrapped" %)
130 130  |=(((
131 131  Method
132 132  )))|=(((
... ... @@ -133,9 +133,9 @@
133 133  Description
134 134  )))
135 135  |(((
136 -\\
149 +
137 137  
138 -{{{EObject KielerCompiler.compile(List&#x3c;String&#x3e; transformationIDs, EObject eObject)}}}
151 +{{{EObject KielerCompiler.compile(List<String> transformationIDs, EObject eObject)}}}
139 139  )))|(((
140 140  * transformationIDs: List of Strings representing the transformation IDs and a pre-ordering. Note that KiCo may automatically modify the order to meet the dependencies of the referenced transformation IDs or transformation group IDs.
141 141  * eObject: The EObject that is the input to the compilation process.
... ... @@ -142,7 +142,7 @@
142 142  * Returns: The EObject returned from the last model transformation called by KiCo.
143 143  )))
144 144  |(((
145 -\\
158 +
146 146  
147 147  {{{EObject KielerCompiler.compile(String transformationIDs, EObject eObject)}}}
148 148  )))|(((
... ... @@ -149,10 +149,9 @@
149 149  This is a convenient method only which can be used to give transformation IDs or transformation group IDs as a comma separated String. For eObject and the return value see above.
150 150  )))
151 151  |(((
165 +
152 152  
153 -\\
154 -
155 -{{{EObject KielerCompiler.compile(List&#x3c;String&#x3e; transformationIDs, EObject eObject, boolean autoexpand)}}}
167 +{{{EObject KielerCompiler.compile(List<String> transformationIDs, EObject eObject, boolean autoexpand)}}}
156 156  )))|(((
157 157  This is an advanced compile method which can turn of auto-expansion with the last parameter. Use this with care! Note that if switching autoexpand off you cannot use transformation group IDs any more. Also no dependencies will be considered. The transformations will be applied straight forward in the order defined by the transformationIDs list.
158 158  )))
... ... @@ -163,10 +163,10 @@
163 163  import de.cau.cs.kieler.kico.KielerCompiler;
164 164  ...
165 165  private MyEObjectClass myMethod(EObject eObject) {
166 - ...
167 - transformed = (MyEObjectClass) KielerCompiler.compile("ABORT, SIGNAL", eObject);
168 - ...
169 - return transformed
178 + ...
179 + transformed = (MyEObjectClass) KielerCompiler.compile("ABORT, SIGNAL", eObject);
180 + ...
181 + return transformed
170 170  }
171 171  {{/code}}
172 172  
... ... @@ -173,10 +173,10 @@
173 173  {{code title="Xtend Code"}}
174 174  import de.cau.cs.kieler.kico.KielerCompiler
175 175  ...
176 -def dispatch MyEObjectClass myMethod(EObject eObject) {
177 - transformed = KielerCompiler.compile("ABORT, SIGNAL", eObject) as MyEObjectClass
178 - ...
179 - transformed
188 +def dispatch MyEObjectClass myMethod(EObject eObject) {
189 + transformed = KielerCompiler.compile("ABORT, SIGNAL", eObject) as MyEObjectClass
190 + ...
191 + transformed
180 180  }
181 181  
182 182  
... ... @@ -186,20 +186,28 @@
186 186  
187 187  === Requirement Completion ===
188 188  
189 -
190 190  
202 +(% class="wrapped" %)
191 191  |=(((
204 +(% class="content-wrapper" %)
205 +(((
192 192  (% style="text-align: center;" %)
193 193  Original
194 194  
209 +(% class="wrapped" %)
195 195  |=(((
211 +(% class="content-wrapper" %)
212 +(((
196 196   [[image:attach:dependencies2.jpg]]
197 197  
198 198  (% style="text-align: center;" %)
199 199  Original Dependency
200 200  Graph
218 +)))
201 201  )))|=(((
202 -(% style="text-align: center;" %)
220 +(% class="content-wrapper" %)
221 +(((
222 +(% style="text-align:center" %)
203 203  [[image:attach:dependencies3.jpg]]
204 204  
205 205  (% style="text-align: center;" %)
... ... @@ -208,19 +208,29 @@
208 208  implementations
209 209  for Abort
210 210  )))
231 +)))
211 211  
212 212  
213 -)))|=(((
234 +)))
235 +)))|=(% scope="row" %)(((
236 +(% class="content-wrapper" %)
237 +(((
214 214  (% style="text-align: center;" %)
215 215  Example 1
216 216  
241 +(% class="wrapped" %)
217 217  |=(((
243 +(% class="content-wrapper" %)
244 +(((
218 218   [[image:attach:dependencies4.jpg]]
219 219  
220 220  (% style="text-align: center;" %)
221 221  Selected for
222 222  transformation
250 +)))
223 223  )))|=(((
252 +(% class="content-wrapper" %)
253 +(((
224 224   [[image:attach:dependencies4b.jpg]]
225 225  
226 226  (% style="text-align: center;" %)
... ... @@ -227,49 +227,68 @@
227 227  Auto selected
228 228  requirements
229 229  )))
260 +)))
230 230  
231 231  
232 232  )))
264 +)))
233 233  
234 -
235 235  
236 -
237 237  
268 +(% class="wrapped" %)
238 238  |=(((
270 +(% class="content-wrapper" %)
271 +(((
239 239  (% style="text-align: center;" %)
240 240  Example 2
241 241  
275 +(% class="wrapped" %)
242 242  |=(((
277 +(% class="content-wrapper" %)
278 +(((
243 243  [[image:attach:dependencies5.jpg]]
244 244  
245 245  (% style="text-align: center;" %)
246 246  Selected for
247 247  transformation
284 +)))
248 248  )))|=(% style="text-align: center;" %)(% style="text-align: center;" %)
249 249  (((
287 +(% class="content-wrapper" %)
288 +(((
250 250  [[image:attach:dependencies5b.jpg]]
251 251  
252 252  Auto selected
253 253  requirements
254 254  using DEFAULT
255 -of alternative
294 +of alternative
256 256  group
257 257  
258 258  
259 259  )))
299 +)))
260 260  
261 261  
262 -)))|=(((
302 +)))
303 +)))|=(% scope="row" %)(((
304 +(% class="content-wrapper" %)
305 +(((
263 263  (% style="text-align: center;" %)
264 264  Example 3
265 265  
309 +(% class="wrapped" %)
266 266  |=(((
311 +(% class="content-wrapper" %)
312 +(((
267 267  [[image:attach:dependencies6.jpg]]
268 268  
269 269  (% style="text-align: center;" %)
270 270  Selected for
271 271  transformation
318 +)))
272 272  )))|=(((
320 +(% class="content-wrapper" %)
321 +(((
273 273  [[image:attach:dependencies6b.jpg]]
274 274  
275 275  (% style="text-align: center;" %)
... ... @@ -278,16 +278,18 @@
278 278  using selected
279 279  alternative
280 280  )))
330 +)))
281 281  
282 282  
283 283  )))
334 +)))
284 284  
285 -
286 286  
287 287  == Help / Problems / FAQs ==
288 288  
289 289  Maybe you get into problems when using KiCo. The following list should give you hints to solve these. If you have a problem not considered here please write us an e-mail (see above for contact information of the persons in charge of KiCo).
290 290  
341 +(% class="wrapped" %)
291 291  |=(((
292 292  Symptom
293 293  )))|=(((
... ... @@ -299,11 +299,18 @@
299 299  You get the following run time error:
300 300  
301 301  
302 -\\\\\\\\\\\\\\\\[[java:102>>url:http://java:102||shape="rect"]]
353 +
354 +
355 +
356 +
357 +
358 +
359 +
360 +\\[[java:102>>url:http://java:102||shape="rect"]]
303 303  [[java:136>>url:http://java:136||shape="rect"]]
304 -[[java:164>>url:http://java:164||shape="rect"]]\\
362 +[[java:164>>url:http://java:164||shape="rect"]]
305 305  
306 -{{{ENTRY de.cau.cs.kieler.klighd 4 0 2014-03-17 11:08:46.009!MESSAGE !STACK 0java.lang.RuntimeException: Cannot find a transformation with the ID 'ABORT2'. Make sure that the transformation with this ID is registered and its declaring plugin is loaded. Make sure that the ID does exactly match (case sensitive). Maybe you forgot to separate multiple ID's by a comma.    at de.cau.cs.kieler.kico.KielerCompiler.getTransformation(KielerCompiler.java:61)    at de.cau.cs.kieler.kico.KielerCompiler.getDependencies(KielerCompiler.java:82)    at de.cau.cs.kieler.kico.KielerCompiler.isDependingOn(KielerCompiler.)    at de.cau.cs.kieler.kico.KielerCompiler.insertTransformationID(KielerCompiler.)    at de.cau.cs.kieler.kico.KielerCompiler.expandDependencies(KielerCompiler.)...}}}
364 +{{{ENTRY de.cau.cs.kieler.klighd 4 0 2014-03-17 11:08:46.009!MESSAGE !STACK 0java.lang.RuntimeException: Cannot find a transformation with the ID 'ABORT2'. Make sure that the transformation with this ID is registered and its declaring plugin is loaded. Make sure that the ID does exactly match (case sensitive). Maybe you forgot to separate multiple ID's by a comma.   at de.cau.cs.kieler.kico.KielerCompiler.getTransformation(KielerCompiler.java:61)   at de.cau.cs.kieler.kico.KielerCompiler.getDependencies(KielerCompiler.java:82)   at de.cau.cs.kieler.kico.KielerCompiler.isDependingOn(KielerCompiler.)   at de.cau.cs.kieler.kico.KielerCompiler.insertTransformationID(KielerCompiler.)   at de.cau.cs.kieler.kico.KielerCompiler.expandDependencies(KielerCompiler.)...}}}
307 307  )))|(((
308 308  There is a transformation with ID "ABORT2" referenced
309 309  either by the initial call to KielerCompiler.compile() or
... ... @@ -320,7 +320,7 @@
320 320  )))|(((
321 321  Check why "ABORT2" may not be found
322 322  by KiCo, more specifically, check if the
323 -declaring can be loaded (sometimes
381 +declaring can be loaded (sometimes
324 324  compiler error prevent it from being loaded
325 325  or it has unsatisfied dependencies).
326 326  Also check the spelling of the ID, maybe
... ... @@ -332,7 +332,6 @@
332 332  
333 333  {{{!ENTRY de.cau.cs.kieler.kico 2 2 2014-03-17 11:26:13.818}}}
334 334  
335 -\\
336 336  
337 337  {{{!MESSAGE Extension 'TERMINATION' from component: de.cau.cs.kieler.sccharts cannot beloaded becaus this ID is already taken. (de.cau.cs.kieler.kico)}}}
338 338  )))|(((
IMAG4642.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +1.5 MB
Content
KiCo.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +138.2 KB
Content
KiCo2.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +5.0 KB
Content
KiCo3.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +166.2 KB
Content
dependencies2.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +170.9 KB
Content
dependencies2.pdf
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +18.5 KB
Content
dependencies3.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +242.8 KB
Content
dependencies4.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +252.6 KB
Content
dependencies4b.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +260.5 KB
Content
dependencies5.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +249.6 KB
Content
dependencies5b.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +281.7 KB
Content
dependencies6.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +258.3 KB
Content
dependencies6b.jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +283.2 KB
Content
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -9471252
1 +9470057
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/9471252/Kieler Compiler
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/9470057/Kieler Compiler