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=a94384f00d53791cbb4b4d83ab41607bc71962d42461f02d71116c4ff6dca567
doc/frama-c.kernel/Frama_c_kernel/index.html
Module Frama_c_kernelSource
module Abstract_interp : sig ... endFunctors for generic lattices implementations.
module Acsl_extension : sig ... endACSL extensions registration module
module Alarms : sig ... endAlarms Database.
module Allocates : sig ... endGeneration of default allocates \nothing clauses.
module Alpha : sig ... endAlpha conversion.
module Annotations : sig ... endAnnotations in the AST. The AST should be computed before calling functions of this module.
module Asm_contracts : sig ... endCode transformation for inferring contracts from information given in GNU's extended assembly syntax. Registered as a transformation occurring after annotations table are filled.
module Ast : sig ... endAccess to the CIL AST which must be used from Frama-C.
module Ast_attributes : sig ... endThis file contains attribute related types/functions/values.
module Ast_diff : sig ... endCompute diff information from an existing project.
module Ast_info : sig ... endAST manipulation utilities.
module Ast_types : sig ... endThis file contains types related types/functions/values.
module Async : sig ... endModule dedicated to asynchronous actions.
module Bag : sig ... endList with constant-time concat operation.
module Base : sig ... endAbstraction of the base of an addressable memory zone, together with the validity of the zone.
module Binary_cache : sig ... endVery low-level abstract functorial caches. Do not use them unless you understand what happens in this module, and do not forget that those caches are not aware of projects.
module Bit_utils : sig ... endSome bit manipulations.
module Bitvector : sig ... endBitvectors.
module Boot : sig ... endmodule Cabs : sig ... endUntyped AST.
module Cabs2cil : sig ... endmodule Cabs_debug : sig ... endmodule Cabshelper : sig ... endHelper functions for Cabs
module Cabsvisit : sig ... endmodule Cfg : sig ... endCode to compute the control-flow graph of a function or file. This will fill in the preds and succs fields of Cil_types.stmt
module Channel : sig ... endmodule Cil : sig ... endCIL main API.
module Cil_builder : sig ... endThis module is meant to build C or ACSL expressions in a unified way. Compared to "classic" Cil functions it also avoids the necessity to provide a location everywhere.
module Cil_builtins : sig ... endmodule Cil_const : sig ... endmodule Cil_datatype : sig ... endDatatypes of some useful CIL types.
module Cil_descriptive_printer : sig ... endInternal printer for Cabs2cil.
module Cil_printer : sig ... endInternal Cil printer.
module Cil_state_builder : sig ... endFunctors for building computations which use kernel datatypes.
module Cil_types : sig ... endThe Abstract Syntax of CIL.
module Cil_types_debug : sig ... endmodule Cilconfig : sig ... endReading and storing configuration files from the filesystem. Currently only used in Frama-C's GUI.
module Clexer : sig ... endThe C Lexer.
module Clone : sig ... endExperimental module
module Cmdline : sig ... endCommand line parsing.
module Command : sig ... endUseful high-level system operations.
module Composition : sig ... endThis module exposes two functors that, given a monad T called the "interior monad" and a monad S called the "exterior monad", build a monad of type 'a T.t S.t. To be able to do so, one has to provide a swap function that, simply put, swap the exterior monad out of the interior one. In other word, this function allows fixing "badly ordered" monads compositions, in the sens that they are applied in the opposite order as the desired one.
module Compression : sig ... endFile compression.
module Contract_special_float : sig ... endmodule Cparser : sig ... endmodule Cprint : sig ... endmodule Current_loc : sig ... endmodule Cvalue : sig ... endRepresentation of Value's abstract memory.
module Dataflow2 : sig ... endImplementation of data flow analyses over user-supplied domains.
module Dataflows : sig ... endImplementation of data flow analyses over user-supplied domains.
module Datatype : sig ... endA datatype provides useful values for types. It is a high-level API on top of module Type.
module Descr : sig ... endType descriptor for safe unmarshalling.
module Description : sig ... endDescribe items of Source and Properties.
module Destructors : sig ... endretrieve local variables with __fc_destructor attribute and add the appropriate calls to the corresponding destructor function when we exit the scope of the variable.
module Dominators : sig ... endModule to perform dominators and postdominators analyses. This module was completely redesigned and provides many new functions.
module Dotgraph : sig ... endHelper for Printing Dot-graphs.
module Dump_config : sig ... endmodule Dynamic : sig ... endValue accesses through dynamic typing.
module Dyncall : sig ... endmodule Emitter : sig ... endEmitter. An emitter is the Frama-C entity which is able to emit annotations and property status. Thus you have to create (at least) one of your own if you want to do such tasks.
module Errorloc : sig ... endThe module stores the current file,line, and working directory in a hidden internal state, modified by the three following functions.
module Escape : sig ... endmodule Eva_lattice_type : sig ... endLattice signatures using the Bottom type: these lattices do not include a bottom element, and return `Bottom instead when needed. Except that, they are identical to the module signatures in Lattice_type.
module Exn_flow : sig ... endManages information related to possible exceptions thrown by each function in the AST.
module Extlib : sig ... endUseful operations. This module does not depend of any of frama-c module.
module FCHashtbl : sig ... endExtension of OCaml's Hashtbl module.
module Fc_float : sig ... endImplementation of floating-point values of different precision, using the standard ocaml floating-point numbers in double precision. Long_Double and Real are inexact.
module Field : sig ... endThis module provides a generic signature describing mathematical fields, i.e algebraic structure that behave like rationals, reals or complex numbers. The signature also provides several functions that are not directly part of fields definition, but are useful nonetheless, in particular when using fields to model floating point computations.
module File : sig ... endFrama-c preprocessing and Cil AST initialization.
module Filecheck : sig ... endThis file performs various consistency checks over a cil file. Code may vary depending on current development of the kernel and/or identified bugs.
module Filepath : sig ... endFunctions manipulating normalized filepaths. In these functions, references *he current working directory refer to the result given by function Sys.getcwd.
module Filesystem : sig ... endmodule Filter : sig ... endFilter helps to build a new cilfile from an old one by removing some of its elements. One can even build several functions from a source function by specifying different names for each of them.
module Finite : sig ... endEncoding of finite set in OCaml type system.
module Float_interval : sig ... endmodule Float_interval_sig : sig ... endSignature for the floating-point interval semantics.
module Float_sig : sig ... endInterface of floating-point numbers of different precisions.
module Floating_point : sig ... endmodule Frontc : sig ... endmodule Fval : sig ... endFloating-point intervals, used to construct arithmetic lattices. The interfaces of this module may change between Frama-C versions. Contact us if you need stable APIs.
module Ghost_accesses : sig ... endmodule Ghost_cfg : sig ... endmodule Globals : sig ... endOperations on globals.
module Hook : sig ... endHook builder. A hook is a bunch of functions which can be extended and applied at any program point.
module Hpath : sig ... endmodule Hptmap : sig ... endEfficient maps from hash-consed trees to values, implemented as Patricia trees.
module Hptmap_sig : sig ... endSignature for the Hptmap module
module Hptset : sig ... endSets over ordered types.
module Indexer : sig ... endIndexer implements ordered collection of items with random access. It is suitable for building fast access operations in GUI tree and list widgets.
module Infer_assigns : sig ... endGeneration of possible assigns from the C prototype of a function.
module Inline : sig ... endmodule Inline_stmt_contracts : sig ... endtransforms requires and ensures of statement contracts into assert. This transformation is done after cleanup
module Inout_type : sig ... endmodule Int_Base : sig ... endBig integers with an additional top element.
module Int_Intervals : sig ... endSets of intervals with a lattice structure. Consecutive intervals are automatically fused.
module Int_Intervals_sig : sig ... endSets of intervals with a lattice structure. Consecutive intervals are automatically fused.
module Int_interval : sig ... endInteger intervals with congruence. An interval defined by min, max, rem, modu represents all integers between the bounds min and max and congruent to rem modulo modu. A value of None for min (resp. max) represents -infinity (resp. +infinity). modu is > 0, and 0 <= rem < modu.
module Int_set : sig ... endSmall sets of integers.
module Int_val : sig ... endInteger values abstractions: an abstraction represents a set of integers. Provided with a lattice structure and over-approximations of arithmetic operations.
module Integer : sig ... endExtension of Big_int compatible with Zarith.
module Interpreted_automata : sig ... endAn interpreted automaton is a convenient formalization of programs for abstract interpretation. It is a control flow graph where states are control point and edges are transitions. It keeps track of conditions on which a transition can be taken (guards) as well as actions which are computed when a transition is taken. It can then be interpreted w.r.t. the operational semantics to reproduce the behavior of the program or w.r.t. to the collection semantics to compute a set of reachable states.
module Ival : sig ... endArithmetic lattices. The interfaces of this module may change between Frama-C versions. Contact us if you need stable APIs.
module Json : sig ... endJson Library
module Json_compilation_database : sig ... endmodule Kernel : sig ... endProvided services for kernel developers.
module Kernel_function : sig ... endOperations to get info from a kernel function. This module does not give access to information about the set of all the registered kernel functions (like iterators over kernel functions). This kind of operations is stored in module Globals.Functions.
module Lattice_bounds : sig ... endTypes, monads and utilitary functions for lattices in which the bottom and/or the top are managed separately from other values.
module Lattice_type : sig ... endLattice signatures.
module Lexerhack : sig ... endmodule Linear : sig ... endDefinition of a linear space over a field. Used by Linear_filter to represent and compute linear filters invariants.
module Linear_filter : sig ... endCompute filters invariants, i.e bounds for each of the filter's state dimensions when the iterations goes to infinity.
module Linear_filter_test : sig ... endmodule List : sig ... endExtend the list type to a full fleshed monad. This monad can be used to represent non-deterministic computations.
module Lmap : sig ... endMaps from bases to memory maps. The memory maps are those of the Offsetmap module.
module Lmap_bitwise : sig ... endFunctors making map indexed by zone.
module Lmap_sig : sig ... endSignature for maps from bases to memory maps. The memory maps are intended to be those of the Offsetmap module.
module Locations : sig ... endMemory locations.
module Log : sig ... endLogging Services for Frama-C Kernel and Plugins.
module Logic_builtin : sig ... endmodule Logic_const : sig ... endSmart constructors for logic annotations.
module Logic_deps : sig ... endmodule Logic_env : sig ... endmodule Logic_lexer : sig ... endLexer for logic annotations
module Logic_parse_string : sig ... endmodule Logic_parser : sig ... endmodule Logic_preprocess : sig ... endadds another preprocessing step in order to expand macros in annotations.
module Logic_print : sig ... endPretty-printing of a parsed logic tree.
module Logic_ptree : sig ... endmodule Logic_to_c : sig ... endmodule Logic_typing : sig ... endLogic typing and logic environment.
module Logic_utils : sig ... endUtilities for ACSL constructs.
module Loop : sig ... endOperations on (natural) loops.
module Machdep : sig ... endManaging machine-dependent information.
module Machine : sig ... endThis module handle the machine configuration. Previous Frama-C versions handled this in Cil.
module Macos_dirs : sig ... endmodule Map_lattice : sig ... endMaps equipped with a lattice structure.
module Markdown : sig ... endmodule Mergecil : sig ... endmodule Messages : sig ... endStored messages for persistence between sessions.
module Monad : sig ... endThis module provides generic signatures for monads along with tools to build them based on minimal definitions. Those tools are provided for advanced users that would like to define their own monads. Any user that only wants to use the monads provided by the kernel can completly ignore them.
module Nat : sig ... endEncoding of the Peano arithmetic in OCaml type system. A value of type n nat contains n at the value and the type level, allowing to express properties on objects sizes and accesses for example. It is used by the module Linear to represent vectors and matrices dimensions.
module Offsetmap : sig ... endMaps from intervals to values.
module Offsetmap_bitwise_sig : sig ... endSignature for Offsetmap_bitwise module, that implement efficient maps from intervals to values.
module Offsetmap_lattice_with_isotropy : sig ... endType of the arguments of functor Offsetmap.Make
module Offsetmap_sig : sig ... endSignature for Offsetmap module, that implement efficient maps from intervals to arbitrary values.
module Oneret : sig ... endmodule Option : sig ... endExtend the option type to a full fleshed monad. Be wary that the parameters order of the bind function are reversed compared to the standard library.
module Ordered_stmt : sig ... endmodule Origin : sig ... endThis module is used to track the origin of very imprecise values (namely "garbled mix", created on imprecise or unsupported operations on addresses) propagated by an Eva analysis.
module Parameter_builder : sig ... endFunctors for implementing new command line options.
module Parameter_category : sig ... endCategory for parameter collections. A category groups together a set of possible values of a given type for some parameters. It may be created once and used several times.
module Parameter_customize : sig ... endConfiguration of command line options.
module Parameter_sig : sig ... endSignatures for command line options.
module Parameter_state : sig ... endmodule Parray : sig ... endmodule Parse_env : sig ... endmodule Plugin : sig ... endPlugin registration and general services.
module Populate_spec : sig ... endThis module is used to generate missing specifications. Options Kernel.GeneratedDefaultSpec, Kernel.GeneratedSpecMode and Kernel.GeneratedSpecCustom can be used to choose precisely which clause to generate in which case.
module Precise_locs : sig ... endThis module provides transient datastructures that may be more precise than an Ival.t, Locations.Location_Bits.t and Locations.location respectively, typically for l-values such as t[i][j], p->t[i], etc. Those structures do not have a lattice structure, and cannot be stored as an abstract domain. However, they can be use to model more precisely read or write accesses to semi-imprecise l-values.
module Pretty_utils : sig ... endPretty-printer utilities.
module Printer : sig ... endAST's pretty-printer.
module Printer_api : sig ... endType of AST's extensible printers.
module Printer_builder : sig ... endBuild a dynamic printer that bind all pretty-printers to the object obtained by (P())
module Printer_tag : sig ... endUtilities to pretty print source with located Ast elements
module Project : sig ... endProjects management.
module Project_output : sig ... endThis module should not be used outside of the Project library.
module Project_skeleton : sig ... endThis module should not be used outside of the Project library.
module Property : sig ... endACSL comparable property.
module Property_status : sig ... endStatus of properties.
module Qstack : sig ... endMutable stack in which it is possible to add data at the end (like a queue) and to handle non top elements. Current implementation is double linked list.
module Rangemap : sig ... endAssociation tables over ordered types.
module Result : sig ... endmodule Rgmap : sig ... endAssociative maps for _ranges_ to _values_ with overlapping.
module Rich_text : sig ... endText with Tags
module Rmtmps : sig ... endmodule Sanitizer : sig ... endmodule Service_graph : sig ... endCompute services from a callgraph.
module Special_hooks : sig ... endNothing is exported: just register some special hooks for Frama-C.
module State : sig ... endA state is a project-compliant mutable value.
module State_builder : sig ... endState builders. Provide ways to implement signature State_builder.S. Depending on the builder, also provide some additional useful information.
module State_dependency_graph : sig ... endState Dependency Graph.
module State_monad : sig ... endThe State monad represents computations relying on a global mutable state but implemented in a functionnal way.
module State_selection : sig ... endA state selection is a set of states with operations for easy handling of state dependencies.
module State_topological : sig ... endTopological ordering over states.
module Statuses_by_call : sig ... endStatuses of preconditions specialized at a given call-point.
module Stmts_graph : sig ... endStatements graph.
module Structural_descr : sig ... endInternal representations of OCaml type as first class values. These values are called structural descriptors.
module Substitute_const_globals : sig ... endmodule System_config : sig ... endInformation about the environment
module Task : sig ... endHigh Level Interface to Command.
module Temp_files : sig ... endThis module provides a layer above the Filesystem module to handle automatic removal of temporary files when the program exits, except if exit is caused by a signal and except if keep is given and set to true. If keep is omitted, the files are only kept if the debug key Kernel.dkey_pp_keep_temp_files is set. If the file is kept, a message with the path of the preserved file or directory is emitted. When the temporary file or directory cannot be created, these functions abort.
module Tr_offset : sig ... endReduction of a location (expressed as an Ival.t and a size) by a base validity. Only the locations in the trimmed result are valid. All offsets are expressed in bits.
module Translate_lightweight : sig ... endAnnotate files interpreting lightweight annotations.
module Type : sig ... endType value. A type value is a value representing a static ML monomorphic type. This API is quite low level. Prefer to use module Datatype instead whenever possible.
module Typed_float : sig ... endmodule Typed_parameter : sig ... endParameter settable through a command line option. This is a low level API, internally used by the kernel. As a plug-in developer, you certainly prefer to use the API of Plugin instead.
module Undefined_sequence : sig ... endmodule Unfold_loops : sig ... endSyntactic loop unfolding. Uses code transformation hook mechanism (after-cleanup phase) of File and exports nothing.
module Unicode : sig ... endHandling unicode string.
module Unix_dirs : sig ... endmodule Unmarshal : sig ... endProvides a function input_val, similar in functionality to the standard library function Marshal.from_channel. The main difference with Marshal.from_channel is that input_val is able to apply transformation functions on the values on the fly as they are read from the input channel.
module Unmarshal_z : sig ... endmodule Utf8_logic : sig ... endUTF-8 string for logic symbols.
module Vector : sig ... endExtensible Arrays
module Visitor : sig ... endFrama-C visitors dealing with projects.
module Visitor_behavior : sig ... endOperations on visitor behaviors.
module Widen_type : sig ... endWidening hints for the Value Analysis datastructures.
module Win_dirs : sig ... endmodule Wto : sig ... endWeak topological orderings (WTOs) are a hierarchical decomposition of the a graph where each layer is topologically ordered and strongly connected components are aggregated and ordered recursively. This is a very convenient representation to describe an evaluation order to reach a fixpoint.
module Wto_statement : sig ... endSpecialization of WTO for the CIL statement graph. See the Wto module for more details