Section: Overall Objectives
Languages and Compilation Techniques
Our research focuses on high level languages with an executable and formal semantics. The former requirement stems from enumerative verification, which relies on the efficient execution of high level descriptions. The latter requirement states that languages lacking a formal semantics are not suitable for safety critical systems (as language ambiguities usually lead to interpretation divergences between designers and implementors). Moreover, enumerative techniques are not always sufficient to establish the correctness of an infinite system (they only deal with finite abstractions); one might need theorem proving techniques, which only apply to languages with a formal semantics.
We are working on several languages with the above properties:
Lotos is an international standard for protocol description ( Iso / Iec standard 8807:1989), which combines the concepts of process algebras (in particular Ccs and Csp ) and algebraic abstract data types. Thus, Lotos can describe both asynchronous concurrent processes and complex data structures. We use Lotos for various industrial case studies and we develop Lotos compilers, which are part of the Cadp toolbox (see § 5.1 ).
Between 1992 and 2001, we contributed to the revision of Lotos undertaken within Iso . This led to the definition of E-Lotos ( Enhanced - Lotos , Iso / Iec standard 15437:2001), which tries to provide a greater expressiveness (for instance, by introducing quantitative time to describe systems with real-time constraints) together with a better user friendliness. Our contributions to E-Lotos are available on the Web (see http://www.inrialpes.fr/vasy/elotos ).
We are also working on an E-Lotos variant, named Lotos NT ( Lotos New Technology )  ,  , in which we can experiment new ideas more freely than in the constrained framework of an international standard. Like E-Lotos , Lotos NT consists of three parts: A data part , which allows the description of data types and functions, a process part , which extends the Lotos process algebra with new constructs such as exceptions and quantitative time, and modules , which provide for structure and genericity. Both languages differ in that Lotos NT combines imperative and functional features, and is also simpler than E-Lotos in some respects (static typing, operator overloading, arrays), which should make it easier to implement. We are developing for Lotos NT a prototype compiler named Traian (see § 5.2 ).