(L)anguage for (I)ntegrated (M)odeling and (A)nalysis
LIMA is a domain specific language developed under NASA contract NNL14AA08. It is designed as a language for generating implementations, formal models, and architectural models from a common specification. In the area of fault-tolerant distributed systems, formal models are often produces from a specification using ad-hoc abstractions. These abstracts tend to cause implementations, and formals models to diverge. Having a common specification source from which we automatically generate implementation and formal model alleviates this.
lima
: Core LIMA language librarylima-c
: C code generator for LIMAlima-sally
: Sally model generator for LIMAcase-studies
: Case study systems expressed in LIMA
The lima
and lima-c
packages are direct forks of Atom
, originally due to
Tom Hawkins and Lee Pike.
To generate code and models from the case studies, first make sure you have
installed the Haskell compiler GHC
, version 7.10 or above and cabal-install
version 1.24 or above. Using your system's package manager is the best way to
achieve this.
Then change to the case study's directory and use cabal-install
to build
LIMA and the example:
$ cd case-studies/OM1
$ cabal new-configure
$ cabal new-build
The executable which generates code and models is given on the last line of output, e.g.
Linking /Users/alice/lima/case-studies/OM1/dist-newstyle/build/lima-om1-0.2.0.0/build/lima-om1/lima-om1
Much of the original code base for this project is due to Tom Hawkins and Lee Pike. The LIMA logo was generously designed by Getty Ritter.