Section: Software and Platforms
Prototypes
Logical Causality
Participant : Gregor Goessler.
We are developing LoCa , a prototype tool written in Scala that implements the analysis of logical causality described in 6.1.1 . LoCa currently supports causality analysis in Bip . The core analysis engine is implemented as an abstract class, such that support for other models of computation (MOC) can be added by instantiating the class with the basic operations of the MOC.
Cosyma
Participant : Gregor Goessler.
We have developed Cosyma , a tool for automatic controller synthesis for incrementally stable switched systems based on multi-scale discrete abstractions. The tool accepts a description of a switched system represented by a set of differential equations and the sampling parameters used to define an approximation of the state-space on which discrete abstractions are computed. The tool generates a controller — if it exists — for the system that enforces a given safety or time-bounded reachability specification.
Automatic Controller Generation
Participant : Alain Girault.
We have developed a software tool chain to allow the specification of models, controller synthesis, and the execution or simulation of the results. It is based on existing synchronous tools, and thus consists primarily in the use and integration of Sigali (http://www.irisa.fr/vertecs/Logiciels/sigali.html ) and Mode Automata (http://www-verimag.imag.fr ). It is the result of a collaboration with Emil Dumitrescu (INSA Lyon) and Eric Rutten from the Ctrl-A Inria team.
Useful component templates and relevant properties can be materialized, on one hand, by libraries of task models, and, on the other hand, by properties and synthesis objectives.
The Interproc family of static analyzers
Participant : Bertrand Jeannet [contact person] .
These analyzers and libraries are of general use for people working in the static analysis and abstract interpretation community.
-
Fixpoint (http://http://pop-art.inrialpes.fr/people/bjeannet/bjeannet-forge/fixpoint ): a generic fix-point engine written in Ocaml . It allows the user to solve systems of fix-point equations on a lattice, using a parameterized strategy for the iteration order and the application of widening. It also implements recent techniques for improving the precision of analysis by alternating post-fixpoint computation with widening and descending iterations in a sound way [66] .
-
Interproc (http://pop-art.inrialpes.fr/people/bjeannet/bjeannet-forge/interproc ): a simple interprocedural static analyzer that infers properties on the numerical variables of programs in a toy language. It is aimed at demonstrating the use of the previous library and the above-described Apron library, and more generally at disseminating the knowledge in abstract interpretation. It is also deployed through a web-interface (http://pop-art.inrialpes.fr/interproc/interprocweb.cgi ).
-
ConcurInterproc extends Interproc with concurrency, for the analysis of multithreaded programs interacting via shared global variables. It is also deployed through a web-interface (http://pop-art.inrialpes.fr/interproc/concurinterprocweb.cgi ).
-
PInterproc extends Interproc with pointers to local variables. It is also deployed through a web-interface (http://pop-art.inrialpes.fr/interproc/pinterprocweb.cgi ).
The SIAAM virtual machine
Participants : Quentin Sabah, Jean-Bernard Stefani [contact person] .
The SIAAM abstract machine is an object-based realization of the Actor model of concurrent computation. Actors can exchange arbitrary object graphs in messages while still enjoying a strong isolation property. It guarantees that each actor can only directly access objects in its own local heap, and that information between actors can only flow via message exchange [10] . The SIAAM machine has been implemented for Java as a modified Jikes virtual machine. The resulting SIAAM software comprises:
-
A modified Jikes RVM that implements actors and actor isolation as specified by the SIAAM machine.
-
A set of static analyses build using the Soot Java optimization framework for optimizing the execution of the SIAAM/Jikes virtual machine, and for helping programmers diagnose potential performance issues.
-
A formal proof using the Coq proof assistant of the SIAAM isolation property.