by Michał Antkiewicz
On April 06, 2015, I presented how inheritance of group cardinality was handled before 0.3.9, how it was fixed as of release 0.3.9, and what an alternative solution could be. The slides are available below. If you have a strong opinion about either solution, please drop me a line.
PowerPoint Slide Show
2015.04.06-Antkiewicz-Inheritance-of-group-cardinality.ppsx
Wednesday, June 3, 2015
Wednesday, May 13, 2015
Clafer, ClaferIG, ClaferWiki, ChocoSolver, and ClaferChocoIG 0.3.10 Released
by Michał Antkiewicz, updated on May 13, 2015
The Clafer compiler, Alloy-based instance generator, and wiki 0.3.10 are released on Hackage (clafer, claferIG, claferwiki). The Choco-based instance generator and multi-objective optimizer 0.3.10.1 is also released. Binary builds are available from Clafer Tools - Binary Distributions.
We also updated Clafer mode for Emacs.
For details of changes see
EDIT (May 1, 2015):
EDIT2 (May 13, 2015):
The binaries now contain a HotFix release 0.3.10.1 of the Choco-based backend.
The Clafer compiler, Alloy-based instance generator, and wiki 0.3.10 are released on Hackage (clafer, claferIG, claferwiki). The Choco-based instance generator and multi-objective optimizer 0.3.10.1 is also released. Binary builds are available from Clafer Tools - Binary Distributions.
We also updated Clafer mode for Emacs.
For details of changes see
EDIT (May 1, 2015):
- The Clafer Model Wiki now runs Clafer 0.3.10.
- The previews of
are now available for testing.
EDIT2 (May 13, 2015):
The binaries now contain a HotFix release 0.3.10.1 of the Choco-based backend.
Monday, March 30, 2015
Clafer, ClaferIG, ClaferWiki, ChocoSolver, and ClaferChocoIG 0.3.9 Released
by Michał Antkiewicz
The Clafer compiler, Alloy-based instance generator, and wiki 0.3.9 are released on Hackage (clafer, claferIG, claferwiki). The Choco-based instance generator and multi-objective optimizer 0.3.9 is also released. Binary builds are available from Clafer Tools - Binary Distributions.
We also updated the plugin for Sublime Text 2/3.
For details of changes see
UPDATE: On Mar 30, 2015, we have updated the release of the chocosolver and ClaferChocoIG projects and uploaded new binaries. The chocosolver now implements the modulo division (reminder) function. Both now produce output consistent with
The Clafer compiler, Alloy-based instance generator, and wiki 0.3.9 are released on Hackage (clafer, claferIG, claferwiki). The Choco-based instance generator and multi-objective optimizer 0.3.9 is also released. Binary builds are available from Clafer Tools - Binary Distributions.
We also updated the plugin for Sublime Text 2/3.
For details of changes see
UPDATE: On Mar 30, 2015, we have updated the release of the chocosolver and ClaferChocoIG projects and uploaded new binaries. The chocosolver now implements the modulo division (reminder) function. Both now produce output consistent with
ClaferIG --useuids --addtypes
. The option --prettify
is equivalent to having --useuids
and not having --addtypes
in ClaferIG.Saturday, March 7, 2015
Clafer Tools in Sublime Text 2/3
by Michał Antkiewicz
Clafer Tools get new and improved integration with Sublime Text 2/3 (release 0.3.9), providing the following features:
Clafer Tools get new and improved integration with Sublime Text 2/3 (release 0.3.9), providing the following features:
- Syntax highlighting of keywords, operators, comments, and integer and string literals
- including the behavioral Clafer extension
- Compilation
<CTRL>+b
- Instance generation (with simple scope inference) using
- Alloy-based instance generator
<CTRL>+i, g, a
- Choco-based instance generator
<CTRL>+i, g, c
- Z3 SMT-based instance generator
<CTRL>+i, g, s
- Alloy-based instance generator
- Clafer binaries are now in a separate folder
Packages/Clafer-Bin
, so that they are not removed with every update of the Clafer Tools Sublime package.
Tuesday, January 27, 2015
Clafer, ClaferIG, ClaferWiki, ChocoSolver, and ClaferChocoIG 0.3.8 Released
by Michał Antkiewicz
The Clafer compiler, Alloy-based instance generator, and wiki 0.3.8 are released on Hackage (clafer, claferIG, claferwiki). The Choco-based instance generator and multi-objective optimizer 0.3.8 is also released. Binary builds are available from Clafer Tools - Binary Distributions.
Major changes include:
The Clafer compiler, Alloy-based instance generator, and wiki 0.3.8 are released on Hackage (clafer, claferIG, claferwiki). The Choco-based instance generator and multi-objective optimizer 0.3.8 is also released. Binary builds are available from Clafer Tools - Binary Distributions.
Major changes include:
- Allowed having both super and reference parts of a clafer declaration. See pull request.
- Changed the intersection operator from
&
to**
to be consistent with++
and--.
- Prepared for module system and behavioral Clafer extension.
- Fixed bugs in HTML and Graph generators.
- Replaced soft constraint
(...)
with assertionassert [...]
. Soft constraints were never supported in any backend. - Phased out Alloy4.1. Alloy 4.2 is now used by default as a compiler mode, for output validation, and instance generation in ClaferIG.
- The
claferwiki.sh
script can now run the wiki from sandbox when given the parameter--sandbox
.
Tuesday, January 20, 2015
Explaining Clafer Semantics by Example
by Michał Antkiewicz
Learning a new language from abstract formal descriptions is hard when lacking strong mathematical background. In the attached presentation, I explain the semantics of Clafer in a simple and intuitive, and yet precise way. I focus on individual language constructs, show small model snippets, and explicitly write down instances of these models as sets and relations. I also explicitly evaluate expressions to show the mechanics of the language. The main goal is to illustrate the application of the abstract semantic rules to concrete cases. This way of presenting the semantics of a modeling language is complementary to the formal presentations.
PowerPoint Slide Show
2015.01.19-Antkiewicz-Clafer-Semantics-By-Example.ppsx
Learning a new language from abstract formal descriptions is hard when lacking strong mathematical background. In the attached presentation, I explain the semantics of Clafer in a simple and intuitive, and yet precise way. I focus on individual language constructs, show small model snippets, and explicitly write down instances of these models as sets and relations. I also explicitly evaluate expressions to show the mechanics of the language. The main goal is to illustrate the application of the abstract semantic rules to concrete cases. This way of presenting the semantics of a modeling language is complementary to the formal presentations.
PowerPoint Slide Show
2015.01.19-Antkiewicz-Clafer-Semantics-By-Example.ppsx
Thursday, January 15, 2015
Behavioral Clafer 0.4.0 Preview Release
by Michał Antkiewicz
We are currently working on the implementation of an extension to Clafer for modeling the evolution of model instances over time: "behavioral Clafer". We published a preview release in Clafer Tools Binary Distributions.
Here's an example model of a PowerWindow system, which includes a feature model, an architecture model, a state machine, and positive and negative execution scenarios. The page is a HTML rendering of the source code in Clafer done by the extended behavioral Clafer compiler. The page was manually edited to add headers explaining the parts of the model.
We are currently working on the implementation of an extension to Clafer for modeling the evolution of model instances over time: "behavioral Clafer". We published a preview release in Clafer Tools Binary Distributions.
Here's an example model of a PowerWindow system, which includes a feature model, an architecture model, a state machine, and positive and negative execution scenarios. The page is a HTML rendering of the source code in Clafer done by the extended behavioral Clafer compiler. The page was manually edited to add headers explaining the parts of the model.
Friday, December 12, 2014
"Clafer: unifying class and feature modeling" available on-line in Software & Systems Modeling journal
The paper (available from publisher's website) presents formal semantics of Clafer. It precisely explains how a single modeling construct (clafer) can play roles of features, feature groups, classes, attributes, references, associations, and association classes. The paper also explains inheritance, specialization, extension, and redefinition. The semantics is presented in a structure preserving way, that is, the shape of the model is preserved in its semantics, rather than being flattened into a multitude of FOL formulas.
Thursday, October 23, 2014
Clafer, ClaferIG, and ClaferWiki 0.3.7 Released
by Michał Antkiewicz
Clafer compiler, Alloy-based instance generator, and wiki 0.3.7 are released on Hackage (clafer, claferIG, claferwiki).
Major changes include:
Clafer compiler, Alloy-based instance generator, and wiki 0.3.7 are released on Hackage (clafer, claferIG, claferwiki).
Major changes include:
- added support for
real
numbers [clafer] - added
not
as a synonym to the quantifierno
[clafer] - moved to the latest Alloy 4.2_2014-05-16 build by default. The
.als
files are Alloy 4.2 whereas the.als41
files are Alloy 4.1. [clafer, claferIG] - added integration with SublimeText 2/3 and VIM.
- moved to the latest Gitit and Pandoc [claferwiki]
- many technical improvements
Wednesday, October 22, 2014
Clafer syntax highlighter for VIM
by Michał Antkiewicz
Andrzej Wąsowski has contributed an integration of Clafer into VIM featuring
Andrzej Wąsowski has contributed an integration of Clafer into VIM featuring
- syntax highlighting for structural and behavioral Clafer, including marking simple errors
- indentation based folding for collapsing parts of the model (experimental)
Subscribe to:
Posts (Atom)