Skip to content

Commit b47a76f

Browse files
author
Alexander Pann
committed
Add information about project structure to readme
- Contains explanation for all languages and solutions categorized by virtual packages. - Relevant concepts are linked and can be opened with the HTTP support plugin. - All available devkits are listed at the bottom of the page. - Relevant KernelF documentation is linked whenever it is possible. (cherry picked from commit 9be85df)
1 parent f43d691 commit b47a76f

File tree

1 file changed

+145
-0
lines changed

1 file changed

+145
-0
lines changed

README.md

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,153 @@ For details see [wiki](https://github.com/IETS3/iets3.opensource/wiki/Supported-
2626
- MPS 2020.3 (branch: [maintenance/mps20203](https://github.com/IETS3/iets3.opensource/tree/maintenance/mps20203))
2727
- MPS 2020.2 (branch: [maintenance/mps20202](https://github.com/IETS3/iets3.opensource/tree/maintenance/mps20202))
2828
- MPS 2020.1 (branch: [maintenance/mps20201](https://github.com/IETS3/iets3.opensource/tree/maintenance/mps20201))
29+
- MPS 2019.3 (branch: [maintenance/mps20193](https://github.com/IETS3/iets3.opensource/tree/maintenance/mps20193))
2930

3031
## Community
3132

3233
### Slack
3334
Ask your questions about KernelF and talk to other users and authors of the IETS3 language library on the public [Slack channel](https://jetbrains-mps.slack.com/archives/CBM449YG5)
35+
36+
## Project Structure
37+
38+
The project is separated into the following virtual packages:
39+
40+
### _build
41+
42+
| Name | Description |
43+
| ------------- | ------------- |
44+
| [build-allScripts.xml](http://127.0.0.1:63320/node?ref=r%3A2dd6bcf7-29b5-4f7c-9303-3883db63b802%28org.iets3.opensource.allScripts.build.build%29%2F6354991446090808661) | This ant script generates the overall build script that also contains the script for running the tests from the command line. |
45+
| [prebuild.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F2278979034075239872) | This ant script contains the analysis language, core base, and expressions base. |
46+
| [build-languages.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F6354991446090808661) | This ant script contains all languages and generates the finished zip file. |
47+
| [build-distro.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F8098566576010865830) | This ant script combines the files from the mbeddr platform with the files from the previous script. |
48+
| [build-tests.xml](http://127.0.0.1:63320/node?ref=r%3Ac3d6ae0c-8b10-477f-a3e9-5dc8700ceb13%28org.iets3.opensource.build.build%29%2F950113207300454071) | This ant script contains all the test languages and solutions and also runs the KernelF generated tests as part of the build. This is achieved by including an instance of [RunKernelFGeneratedTests](http://127.0.0.1:63320/node?ref=r%3A2ce4b587-5587-43f7-8005-e3fb84f231b0%28org.iets3.opensource.build.gentests.structure%29%2F4604852045247358203). |
49+
50+
### analysis
51+
| Name | Description |
52+
| ------------- | ------------- |
53+
| org.iets3.analysis.base | This language contains basic concepts and interfaces and a plugin solution related to solvers. |
54+
55+
### assessment
56+
| Name | Description |
57+
| ------------- | ------------- |
58+
| org.iets3.core.assessment | It contains an [AssessmentQuery](http://127.0.0.1:63320/node?ref=r%3Af7764ca4-8c75-4049-922b-08516400a727%28com.mbeddr.core.base.structure%29%2F865293814733115675) to find [untraced elements](http://127.0.0.1:63320/node?ref=r%3A23d7e401-548b-485c-bdf1-c060e259073c%28org.iets3.core.assessment.structure%29%2F3587241503657463099). It can be used inside an instance of [Assessment](http://127.0.0.1:63320/node?ref=r%3Af7764ca4-8c75-4049-922b-08516400a727%28com.mbeddr.core.base.structure%29%2F865293814733114044) inside an [AssessmentContainer](http://127.0.0.1:63320/node?ref=r%3Af7764ca4-8c75-4049-922b-08516400a727%28com.mbeddr.core.base.structure%29%2F865293814733114043). It also contains a [generic trace query](http://127.0.0.1:63320/node?ref=r%3A23d7e401-548b-485c-bdf1-c060e259073c%28org.iets3.core.assessment.structure%29%2F6913547888673489335) to find traced elements. |
59+
60+
### comp
61+
| Name | Description |
62+
| ------------- | ------------- |
63+
| org.iets3.components.core.interpreter | It contains the [interpreter](http://127.0.0.1:63320/node?ref=r%3A3cecc670-c5e6-4794-af17-a5638180af01%28org.iets3.components.core.interpreter.plugin%29%2F5228096169281078735) for the components language. |
64+
| org.iets3.components.core.sandbox | It is a sandbox for components. |
65+
| org.iets3.components.plugin | It contains a [custom project view](http://127.0.0.1:63320/node?ref=r%3A8e7e3b0c-cd10-406a-8ea9-1757f9338557%28org.iets3.components.plugin.plugin%29%2F1589875445590468534]) that displays all the components in the project. |
66+
| tests.ts.components.core | It contains test cases related to the components language. |
67+
| org.iets3.components.core| This languages add support for components. More info: [page 24](https://voelter.de/data/pub/kernelf-reference.pdf#page=24) |
68+
| org.iets3.components.req | It adds support for components (alias:components) in [requirements](http://127.0.0.1:63320/node?ref=r%3A82415404-e5c7-47c8-ae5b-951fc882e316%28org.iets3.req.core.structure%29%2F5151426049053136028). |
69+
| test.iets3.component.attribute | This language adds test attributes for components (see instances in components tests). |
70+
71+
### core
72+
| Name | Description |
73+
| ------------- | ------------- |
74+
| org.iets3.core.plugin | It contains a [custom project view](http://127.0.0.1:63320/node?ref=r%3Acdcdec44-a636-42c8-b599-c146eb2ca77d%28org.iets3.core.plugin.plugin%29%2F1589875445590468534) that displays all nodes related to the specification. |
75+
| tests.org.iets3.core.comments | It contains tests for comments. |
76+
| org.iets3.core.attributes | It contains the language that implements attributes for components. |
77+
| org.iets3.core.base | This language contains basic concepts and interfaces and a plugin solution related to this project. |
78+
| org.iets3.core.users | This language allows specifying users and user directories. Not used anywhere. |
79+
80+
### expr
81+
The package _genjava_ contains interpreters for generating Java code from KernelF. It also included an example for generating Java code from state machines.
82+
83+
#### Core language constructs (lang-core)
84+
This package contains the following parts of KernelF ([full paper](https://voelter.de/data/books/kernelf-designEvoUse.pdf), [reference](http://voelter.de/data/pub/kernelf-reference.pdf)) including runtime solution and interpreters:
85+
86+
87+
| Package | Name | Description |
88+
| ------------- | ------------- | ------------- |
89+
| org.iets3.core.expr.base | KernelF base language | [reference](https://voelter.de/data/pub/kernelf-reference.pdf#page=2) |
90+
| org.iets3.core.expr.collections | support for lists, maps, sets | [page 5](https://voelter.de/data/pub/kernelf-reference.pdf#page=5) |
91+
| org.iets3.core.expr.lambda | anonymous functions lambda) | [page 6](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=6) |
92+
| org.iets3.core.expr.path | path expressions (record) | [page 61](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=61) |
93+
| org.iets3.core.expr.repl | read–eval–print loop | [page 12](https://voelter.de/data/pub/kernelf-reference.pdf#page=12) |
94+
| org.iets3.core.expr.simpleTypes | simple types (bool, numeric, string) | [page 2](https://voelter.de/data/pub/kernelf-reference.pdf#page=2) |
95+
| org.iets3.core.expr.simpleTypes.tests | simple type tests | It contains tests for simple types. |
96+
| org.iets3.core.expr.tests | expression test language | It implements a language for testing expressions. |
97+
| org.iets3.core.expr.toplevel | top level expressions| It contains expressions that can be used at the top level (records, functions, constants etc). A top level can be for example a [Library](http://127.0.0.1:63320/node?ref=r%3Ada65683e-ff6f-430d-ab68-32a77df72c93%28org.iets3.core.expr.toplevel.structure%29%2F543569365052711055) |
98+
| org.iets3.core.expr.tracing | tracing | It is a utility language that helps with tracing. |
99+
100+
#### Advanced language constructs (lang-advanced)
101+
This package contains the following parts of KernelF ([full paper](https://voelter.de/data/books/kernelf-designEvoUse.pdf), [reference](http://voelter.de/data/pub/kernelf-reference.pdf)) including runtime solution and interpreters:
102+
103+
| Package | Name | Description |
104+
| ------------- | ------------- | ------------- |
105+
| org.iets3.core.expr.adt | algebraic data types(ADT)| tests: [#1](http://127.0.0.1:63320/node?ref=r%3A109d7958-4308-4f2a-95cb-ea4731803298%28test.in.expr.os.algebraic%40tests%29%2F2460310434912820190), [#2](http://127.0.0.1:63320/node?ref=r%3A75f6a9e9-cf21-495f-b1aa-7fd992d0d7d0%28test.ts.expr.os.m1%40tests%29%2F5955298286239396844) |
106+
| org.iets3.core.expr.data | data tables | tests: [#1](http://127.0.0.1:63320/node?ref=r%3A91b05dce-7884-4f58-b31f-cc577eb13b6a%28test.in.expr.os.datatable%40tests%29%2F231307155597941680), [#2](http://127.0.0.1:63320/node?ref=r%3A75f6a9e9-cf21-495f-b1aa-7fd992d0d7d0%28test.ts.expr.os.m1%40tests%29%2F5582042358565853921) |
107+
| org.iets3.core.expr.dataflow | data flow | tests: [#1](http://127.0.0.1:63320/node?ref=r%3Ad13efac1-a045-434f-8551-7b85e2be7d5e%28test.in.expr.os.dataflow%40tests%29%2F6603722298916716562) |
108+
| org.iets3.core.expr.datetime | date type | [page 19](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=19)|
109+
| org.iets3.core.expr.doc | expression documentation | It contains additional top level expressions for documentation purposes. |
110+
| org.iets3.core.expr.lookup | lookup table | It implements a lookup table that supports a lookup method that returns the cell content at the specified index. example: [doc page 17](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=17)|
111+
| org.iets3.core.expr.math | math expressions | example: [page 6](https://voelter.de/data/pub/kernelf-reference.pdf#page=6), tests: [#1](http://127.0.0.1:63320/node?ref=r%3A04a13e22-2253-4023-a07e-4ed087d741d9%28test.in.expr.os.math%40tests%29%2F1782300720840659649)|
112+
| org.iets3.core.expr.messages | messages | tests: [#1](http://127.0.0.1:63320/node?ref=r%3A6a32786e-0823-4465-b671-9705159d21d5%28test.in.expr.os.messages%40tests%29%2F4026566441521964867) |
113+
| org.iets3.core.expr.metafunction | meta functions | [page 28](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=28)|
114+
| org.iets3.core.expr.natlang | natural language expressions | tests: [#1](http://127.0.0.1:63320/node?ref=r%3A75f6a9e9-cf21-495f-b1aa-7fd992d0d7d0%28test.ts.expr.os.m1%40tests%29%2F9215883686880841068) |
115+
| org.iets3.core.expr.query | query expressions | It is a simple sql like querying language; tests: [#1](http://127.0.0.1:63320/node?ref=r%3Af196894a-6bc3-4955-8759-1868547f56f4%28test.in.expr.os.query%40tests%29%2F6749162445851494931)|
116+
| org.iets3.core.expr.temporal | temporal type | [page 20](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=20)|
117+
| org.iets3.core.expr.typetags | type tags | [page 67](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=67) |
118+
| org.iets3.core.expr.util.dectab | binary decision table | tests: [#1](http://127.0.0.1:63320/node?ref=r%3Ab4500bb0-87e3-4d5a-a729-2379e1aab94c%28test.in.expr.os.dectabs%40tests%29%2F8300945978968936019), [#2](http://127.0.0.1:63320/node?ref=r%3A5d61ba74-2fa4-4f6f-9f36-f36d4e99a4c5%28test.in.expr.os.mutable%40tests%29%2F3049137625220811600), [#3](http://127.0.0.1:63320/node?ref=r%3Aae52e1b7-6479-4187-9e09-836b57124d46%28test.in.expr.os.utils%40tests%29%2F7740953487931394083)|
119+
| org.iets3.core.expr.util.dectree | decision tree | tests: [#1](http://127.0.0.1:63320/node?ref=r%3Aa2594bdc-f128-474d-863a-401664a7ab8e%28test.in.expr.os.todo%40tests%29%2F2213287198085468650) |
120+
| org.iets3.core.expr.util.multidectab | multi-criteria decision table | tests: [#1](http://127.0.0.1:63320/node?ref=r%3Aae52e1b7-6479-4187-9e09-836b57124d46%28test.in.expr.os.utils%40tests%29%2F5872516655158242989) |
121+
| org.iets3.core.expr.util.range | ranges | |
122+
123+
#### Stateful language constructs (lang-stateful)
124+
This package contains the following parts of KernelF ([full paper](https://voelter.de/data/books/kernelf-designEvoUse.pdf), [reference](http://voelter.de/data/pub/kernelf-reference.pdf)) including runtime solution and interpreters:
125+
126+
| Package | Name | Description |
127+
| ------------- | ------------- | ------------- |
128+
| org.iets3.core.expr.mutable | mutable expressions | [page 9](https://voelter.de/data/pub/kernelf-reference.pdf#page=9) |
129+
| org.iets3.core.expr.process | processes including multi-party-boolean-decisions | [page 27](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=27) |
130+
| org.iets3.core.expr.statemachines | state machines | [page 10](https://voelter.de/data/pub/kernelf-reference.pdf#page=10) |
131+
132+
#### Plugins
133+
| Package | Description |
134+
| ------------- | ------------- |
135+
| org.iets3.core.expr.doc.plugin | It implements a [custom project view](http://127.0.0.1:63320/node?ref=r%3A2aadf869-ec0a-4845-ac24-3bc9c1244385%28org.iets3.core.expr.doc.plugin.plugin%29%2F1589875445590468534) for bookmarks([IBookmark](http://127.0.0.1:63320/node?ref=r%3A04cb519f-2059-4c60-9414-918c7823fd79%28org.iets3.core.expr.doc.structure%29%2F42223031011651425)). |
136+
| org.iets3.core.expr.lambda.plugin | It contains refactoring actions for lambda expressions. |
137+
| org.iets3.core.expr.plugin | It contains various actions related to the KernelF language. |
138+
| org.iets3.core.expr.repl.plugin | It contains various actions related to REPL. |
139+
140+
#### Tests
141+
The tests are grouped into the playground, [test suites](http://127.0.0.1:63320/node?ref=r%3Aba7faab6-2b80-43d5-8b95-0c440665312c%28org.iets3.core.expr.tests.structure%29%2F543569365052711055) and nodes test cases. The language _org.iets3.core.expr.testExecution_ contains a configuration for the test execution mode (generator, interpreter).
142+
143+
### req
144+
145+
This package includes all things related to requirement documents.
146+
147+
| Package | Description |
148+
| ------------- | ------------- |
149+
| org.iets3.req.plugin | It contains requirement-related actions, projection modes and a [custom project view](http://127.0.0.1:63320/node?ref=r%3A6152f7b8-7ec7-4c3a-ad96-68855bbe5797%28org.iets3.req.plugin.plugin%29%2F1589875445590468534) that displays all requirements in the project.|
150+
| org.iets3.req.glossary | This languages allows to define terms in glossaries which can be referenced in requirement documents.|
151+
| org.iets3.req.req.core | This language implements requirements documents. A new document can be created with the root node [RequirementsChunk](http://127.0.0.1:63320/node?ref=r%3A82415404-e5c7-47c8-ae5b-951fc882e316%28org.iets3.req.core.structure%29%2F5151426049053136028).|
152+
153+
### trace
154+
155+
This package includes all things related to tracing. More info: [page 27 debugger](https://voelter.de/data/books/kernelf-designEvoUse.pdf#page=27)
156+
157+
| Package | Description |
158+
| ------------- | ------------- |
159+
| test.iets3.core.tracequery | It contains trace tests. |
160+
| org.iets3.core.trace | It implements trace attributes (can be for example used in components). |
161+
| org.iets3.core.test | It is a language for trace testing. |
162+
163+
## Devkits
164+
165+
The following devkits are available:
166+
167+
| Package | Contents |
168+
| ------------- | ------------- |
169+
| org.iets3.req | requirements |
170+
| org.iets3.core.expr.core.devkit| core expressions + interpreters |
171+
| org.iets3.core.expr.advanced.devkit | core expressions + interpreters |
172+
| org.iets3.core.expr.stateful.devkit | stateful expressions + interpreters |
173+
| org.iets3.core.expr.genjava.core.devkit | java generation of core expressions |
174+
| org.iets3.core.expr.genjava.advanced.devkit | java generation of advanced expressions |
175+
| org.iets3.core.expr.genjava.stateMachineExample.devkit | java generation of state machine example |
176+
| org.iets3.core.expr.genall.core.devkit | all core generation devkits |
177+
| org.iets3.core.expr.genall.advanced.devkit | all advanced generation devkits |
178+

0 commit comments

Comments
 (0)