Skip to content

Releases: FAMILIAR-project/familiar-language

FAMILIAR 1.2

08 Feb 11:27
9829e71
Compare
Choose a tag to compare

FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) is a language for importing, exporting, composing, decomposing, editing, configuring, computing "diffs", refactoring, reverse engineering, testing, and reasoning about (multiple) feature models. All these operations can be combined to realize complex variability management tasks.

Example of a session with the executable JAR.

vmacher:familiar-language macher1$ java -jar FML-standalone-withJARS/lib/FAMILIAR-Standalone-1.0.10-jar-with-dependencies.jar
FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning) version 1.2 (beta)
http://familiar-project.github.com/
fml> fm1 = FM (MDI : UML DesignPatterns (SI|IN) Instructors ; Instructors : (Mathieu | Guillaume); Mathieu <-> IN ; Guillaume <-> SI; )
fm1: (FEATURE_MODEL) MDI: (IN|SI) UML DesignPatterns Instructors ;
Instructors: (Mathieu|Guillaume) ;
(Mathieu <-> IN);
(Guillaume <-> SI);
fml> fm2 = slice fm1 excluding { Mathieu }
fm2: (FEATURE_MODEL) MDI: (IN|SI) UML DesignPatterns Instructors ;
Instructors: [Guillaume] ;
(SI <-> Guillaume);
fml> counting fm1
res1: (DOUBLE) 2.0
fml> counting fm2
res2: (DOUBLE) 2.0
fml> configs fm1
res3: (SET) {{MDI;UML;Guillaume;DesignPatterns;SI;Instructors};{UML;MDI;IN;DesignPatterns;Mathieu;Instructors}}
fml> configs fm2
res4: (SET) {{SI;MDI;Instructors;DesignPatterns;Guillaume;UML};{DesignPatterns;UML;MDI;IN;Instructors}}
fml>