Skip to content

Commit 77be96f

Browse files
committed
Extended languagge design and intro text
1 parent 793a3da commit 77be96f

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
### Community-Driven Language for Variability Models
22

3-
The **U**niversal **V**ariability **L**anguage is a community effort towards a unified language for variability models. UVL is a direct result of the efforts within the <a href="https://modevar.github.io/">MODEVAR</a> initiative.
3+
The **U**niversal **V**ariability **L**anguage is a community effort towards a unified language for variability models. UVL is a direct result of the efforts within the <a href="https://modevar.github.io/">MODEVAR</a> initiative. *Do you have any questions on UVL?* *Do you want to contribute?* *We gladly receive your message at [Contact](mailto:chico.sundermann@uni-ulm.de).*
44

55

66
# Language Design
77

8+
UVL specifies variability models with a tree-like structure to represent the hierarchical structure of variability models. Below you can see a simple example of a variability model in UVL. The tree structure is visualized on the right side in the [FeatureIDE](https://github.com/FeatureIDE/FeatureIDE) representation. The language core of UVL comes with several concepts to specify constraints:
9+
10+
* *Mandatory*: The feature needs to be selected if its parent is selected
11+
* *Optional*: The feature can be selected if its parent is selected
12+
* *Or*: At least one of the children need to be selected if its parent is selected
13+
* *Alternative*: Exactly one of the children needs to be selected
14+
* *Cross-tree constraints*: Arbitrary propositional constraints over the features
15+
816
<img align="right" src="pics/small_sandwich.png" alt="Small Sandwich" width="300">
917
<pre>
1018
<code>
@@ -18,16 +26,18 @@ The **U**niversal **V**ariability **L**anguage is a community effort towards a u
1826
Ketchup
1927
Mustard
2028
Cheese
29+
constraints
30+
Ketchup => Cheese
2131
</code>
2232
</pre>
2333

2434
# Software
2535

2636
### Tool Support for UVL
2737
* Java-based parser for UVL: <a href="https://github.com/Universal-Variability-Language/uvl-parser2.0">UVL-Parser2.0</a>
28-
* Python-based parser for UVL: [UVL Parser](https://github.com/flamapy/uvlparser)
38+
* Python-based parser for UVL (WIP): [UVL Parser](https://github.com/flamapy/uvlparser)
2939
* Rust-based Language Server Protocol for integrating UVL in your favorite IDE: <a href="https://github.com/Universal-Variability-Language/uvl-lsp">UVLS</a>
30-
* Visual Studio Code <a href="https://marketplace.visualstudio.com/items?itemName=caradhras.uvls-code">extension </a> based on **UVLs**
40+
* Visual Studio Code <a href="https://marketplace.visualstudio.com/items?itemName=caradhras.uvls-code">extension </a> based on **UVLS**
3141

3242
### Tools Integrating UVL
3343

0 commit comments

Comments
 (0)