package frama-c
Install
    
    dune-project
 Dependency
Authors
- 
  
    
    MMichele Alberti
 - 
  
    
    TThibaud Antignac
 - 
  
    
    GGergö Barany
 - 
  
    
    PPatrick Baudin
 - 
  
    
    NNicolas Bellec
 - 
  
    
    TThibaut Benjamin
 - 
  
    
    AAllan Blanchard
 - 
  
    
    LLionel Blatter
 - 
  
    
    FFrançois Bobot
 - 
  
    
    RRichard Bonichon
 - 
  
    
    VVincent Botbol
 - 
  
    
    QQuentin Bouillaguet
 - 
  
    
    DDavid Bühler
 - 
  
    
    ZZakaria Chihani
 - 
  
    
    SSylvain Chiron
 - 
  
    
    LLoïc Correnson
 - 
  
    
    JJulien Crétin
 - 
  
    
    PPascal Cuoq
 - 
  
    
    ZZaynah Dargaye
 - 
  
    
    BBasile Desloges
 - 
  
    
    JJean-Christophe Filliâtre
 - 
  
    
    PPhilippe Herrmann
 - 
  
    
    MMaxime Jacquemin
 - 
  
    
    BBenjamin Jorge
 - 
  
    
    FFlorent Kirchner
 - 
  
    
    AAlexander Kogtenkov
 - 
  
    
    RRemi Lazarini
 - 
  
    
    TTristan Le Gall
 - 
  
    
    KKilyan Le Gallic
 - 
  
    
    JJean-Christophe Léchenet
 - 
  
    
    MMatthieu Lemerre
 - 
  
    
    DDara Ly
 - 
  
    
    DDavid Maison
 - 
  
    
    CClaude Marché
 - 
  
    
    AAndré Maroneze
 - 
  
    
    TThibault Martin
 - 
  
    
    FFonenantsoa Maurica
 - 
  
    
    MMelody Méaulle
 - 
  
    
    BBenjamin Monate
 - 
  
    
    YYannick Moy
 - 
  
    
    PPierre Nigron
 - 
  
    
    AAnne Pacalet
 - 
  
    
    VValentin Perrelle
 - 
  
    
    GGuillaume Petiot
 - 
  
    
    DDario Pinto
 - 
  
    
    VVirgile Prevosto
 - 
  
    
    AArmand Puccetti
 - 
  
    
    FFélix Ridoux
 - 
  
    
    VVirgile Robles
 - 
  
    
    JJan Rochel
 - 
  
    
    MMuriel Roger
 - 
  
    
    CCécile Ruet-Cros
 - 
  
    
    JJulien Signoles
 - 
  
    
    NNicolas Stouls
 - 
  
    
    KKostyantyn Vorobyov
 - 
  
    
    BBoris Yakobowski
 
Maintainers
Sources
sha256=095ffbb3086a6cd963a03e3defab4f0dc32e9a43f026e552ec9ae346a6e20522
    
    
  doc/frama-c-e-acsl.core/E_ACSL/Interlang_gen/index.html
Module E_ACSL.Interlang_gen
The compilation of E-ACSL to Cil is implemented as a two-stage process, where E-ACSL is first translated into an intermediate language Interlang and only then into Cil. This module defines a monad M for specifying computations that generate Interlang expressions, and is thus used for the first stage.
It is an instance of the RWS monad (Monad_rws), operating on the following background data.
type env = {kf : Frama_c_kernel.Cil_types.kernel_function;loc : Frama_c_kernel.Cil_types.location;vars : Interlang.exp Frama_c_kernel.Cil_datatype.Term.Map.t;env : Env.t;rte : bool;
}The Reader variable of M. See Monad_rws.Conf.env.
Computations within the Interlang_gen.M monad are initiated from within a larger compilation context with its own environment of type Env.t. Moreover in that context the current kernel_function and current location are known. These data will not change during the computation, and are simply made available (as a sort of global variable) through this Reader variable env.
Additionally the rte field specifies whether RTEs are to be generated. This value might be locally shadowed during the computation.
type state = Interlang.exp Frama_c_kernel.Cil_datatype.Term.Map.tThe State variable of M includes a map of local variables (initially empty) which is enriched with newly generated variables. This is done such that at the end of a block these variables can be cleaned. (The cleaning mechanism is not yet implemented in the new compilation scheme, and effectuated by the direct-to-Cil compilation scheme.)
This exception is raised when the language element to be translated is not yet supported by the intermediate language compilation scheme. In that case the old direct-to-Cil compilation scheme is used. The preferred method of raising this exception is using M.not_covered.
module M : sig ... endThe intermediate language generation monad. It is used for translating E-ACSL predicates to expressions of the E-ACSL intermediate language (see Interlang).
type 'a m = 'a M.tan abbreviation for the monad type
val binop : Frama_c_kernel.Cil_types.binop -> Interlang.binopTransforms a Cil binary operator to an Interlang binary operator. Not all Cil operators are supported (yet).