The main entry point of KaSim executable is main/KaSim.ml but let's describe the API bottom-up.
The folder dataStructures/ has a transparent name. You can find there:
| DynamicArray |
Array with dynamic size
|
| SetMap |
Our own implementattion of Set and Map
|
| IntCollection |
Imperative int set
|
| ValMap | |
| Operator |
Compiled algebraic expression
|
| Nbr |
Kappa numbers (either float, int or int64) and operations on them
|
| Fractions | |
| NamedDecls |
Stores a bunch of stuff the user gave a name to
|
| Locality |
Output a JSON value of type
Locality.t.
|
| List_util |
Set union of 2 sorted list
When l1 is included in l2:
merge_uniq l1 l2 == merge_uniq l2 l1 == l2
|
| Option_util |
Utilities on option
|
| Tools |
Misc utilities
|
| Pp | |
| Pp_svg | |
| Pp_html | graph_page title deps header core f
|
| Progress_report |
Utilities to show progress on stdout
|
| Loggers |
* loggers.mli
*
* a module for KaSim
* Jérôme Feret, projet Antique, INRIA Paris
*
* KaSim
* Jean Krivine, Université Paris-Diderot, CNRS
*
* Creation: 26/01/2016
* Last modification: 25/05/2016
* *
*
*
* Copyright 2016 Institut National de Recherche en Informatique et
* en Automatique.
|
| Graph_loggers |
* graph_loggers.mli
*
* a module for KaSim
* Jérôme Feret, projet Antique, INRIA Paris
*
* KaSim
* Jean Krivine, Université Paris-Diderot, CNRS
*
* Creation: 23/05/2016
* Last modification: 25/05/2016
* *
*
*
* Copyright 2016 Institut National de Recherche en Informatique et
* en Automatique.
|
| Ode_loggers |
* graph_loggers.ml
*
* a module for KaSim
* Jérôme Feret, projet Antique, INRIA Paris
*
* KaSim
* Jean Krivine, Université Paris-Diderot, CNRS
*
* Creation: 22/07/2016
* Last modification: Time-stamp: <Jul 25 2016>* *
*
*
* Copyright 2016 Institut National de Recherche en Informatique et
* en Automatique.
|
In term/ directory stands all definitions the simulator works on.
| Agent |
A node of a site graph
|
| Signature |
Store definitions of agents
|
| Contact_map |
(internal_states, (agent_type, agent_site) link_states
|
| Pattern |
Domain to navigate in the graph
|
| Instantiation |
What users wrote when writing its rules
|
| Alg_expr |
Smart constructor
|
| Alg_expr_extra |
Primitives for handling rule rates when detecting symmetries
|
| Affine_combinations | |
| Raw_mixture | |
| Patterns_extra | |
| Primitives |
Compiled kappa model unit
|
| Model |
Compiled representation of a full Kappa model
|
| Kappa_printer |
Printers (user readable) of Kappa compiled units
|
In grammar/ are the parser and the compilers
| Configuration | |
| Ast |
Kappa AST just after parsing
|
| LKappa |
Intermediate representation of model on wich sanity has been checked
|
| Snip |
Kappa pattern compiler
|
| Eval |
Main compilation functions
|
The module to store and manipulate the state of the simulation are in
siteGraph/
| Edges |
Concrete graph implementation
|
| Navigation |
Pathes to explore a mixture
|
| Replay |
Utilities to make mixtures from traces
|
The simulation engine is in simulation/
The core of the interpreter
| Expr_interpreter |
Algebraic expression computation
|
| Rule_interpreter | |
| State_interpreter |
Event loop module
|
| Counter |
Simulation progress keeper
|
| Data |
Must have length >= 1 (at least
T or E)
|
| Trace |
Trace of simulation
|
The machinary to cook stories from an execution trace is in cflow/
| Compression_main |
Main entry to the story machinery
|
| Utilities |
High-level elementary primitives to generate stories
|
| Priority |
parameters to tune which event is discarded next
|
The code specific to the command line backend is in main/. It consists in file handler and renderers
| Outputs |
Deal with simulation output
|
| Kappa_files |
Utilities on files
|
Some APIs for KaSa can be found in KaSa_rep/export/
| Export_to_KaDE |
* export.mli
* openkappa
* Jérôme Feret, projet Abstraction/Antique, INRIA Paris-Rocquencourt
*
* Creation: Aug 23 2016
* Last modification: Time-stamp: <Aug 07 2017>
* *
*
* Copyright 2010,2011 Institut National de Recherche en Informatique et
* en Automatique.
|
| Export_to_KaSa |
* export.mli
* openkappa
* Jérôme Feret, projet Abstraction/Antique, INRIA Paris-Rocquencourt
*
* Creation: June 30 2016
* Last modification: Time-stamp: <Nov 13 2017>
* *
*
* Copyright 2010,2011 Institut National de Recherche en Informatique et
* en Automatique.
|
| Export_to_KaSim |
* export.mli
* openkappa
* Jérôme Feret, projet Abstraction/Antique, INRIA Paris-Rocquencourt
*
* Creation: June 30 2016
* Last modification: Time-stamp: <Nov 21 2016>
* *
*
* Copyright 2010,2011 Institut National de Recherche en Informatique et
* en Automatique.
|
Some data_structures used in KaSa.
This library that proposes different implementations for arrays can be found in KaSa_rep/data_structures/
| Int_storage |
* int_storage.mli
*
* Creation: <2016-03-14 feret>
* Last modification: Time-stamp: <Nov 23 2016>
*
* openkappa
* Jérôme Feret, projet Abstraction, INRIA Paris-Rocquencourt
*
*
* This library provides primitives to deal with storage functions
*
* Copyright 2010,2011,2012,2013,2014,2015 Institut National
* de Recherche en Informatique et en Automatique.
|
| Mvbdu_wrapper |
* mvbdu_wrapper.mli
* openkappa
* Jérôme Feret, projet Abstraction, INRIA Paris-Rocquencourt
*
* Creation: 08/03/2010
* Last modification: Time-stamp: <Jul 11 2017>
* *
* This library provides test benchmarks for the library of sets of finite maps from integers to integers
*
* Copyright 2010 Institut National de Recherche en Informatique et
* en Automatique.
|
The code of the static analyser is in KaSa_rep/reachability_analysis/
| Analyzer |
Analyzer entry point
|
| Analyzer_headers |
type declarations and values shared among the abstract domains
|
| Composite_domain |
composite abstract domain (no longer with communications which have been internalized)
|
| Communication | |
| Analyzer_domain_sig |
signature of abstract domains (with explicit communication)
|
| Product |
Functor to combine several abstract domains (with explicit communiaction among them)
|
| Usual_domains |
| Rules_domain |
This domain tracks which rules can be applied, and warns other domains at the first application of a rule
|
| Agents_domain |
Abstract domain that abstracts away the interface of agents, and see each rule as a multiset-rewriting reaction over typed agents
|
| Views_domain |
Abstract domain to over-approximate the set of reachable views
|
| Parallel_bonds |
Abstract domain to over-approximate the set of reachable views
|
| Site_across_bonds_domain |
Abstract domain to over-approximate the set of reachable views
|
Primivites to deal with symmetries in rules and species
| LKappa_group_action |
* LKappa_group_action.ml
* openkappa
* Jérôme Feret & Ly Kim Quyen, projet Antique, INRIA Paris-Rocquencourt
*
* Creation: 2016, the 5th of December
* Last modification: Time-stamp: <Jun 12 2017>
*
* Abstract domain to record relations between pair of sites in connected agents.
|
| Pattern_group_action |
* pattern_group_action.ml
* openkappa
* Jérôme Feret & Ly Kim Quyen, projet Antique, INRIA Paris-Rocquencourt
*
* Creation: 2016, the 5th of December
* Last modification: Time-stamp: <May 13 2017>
*
* Abstract domain to record relations between pair of sites in connected agents.
|
| Symmetries_sig |
Abstract domain to record relations between pair of sites in
connected agents.
|
| Symmetries |
* symmetries.ml
* openkappa
* Jérôme Feret & Ly Kim Quyen, projet Antique, INRIA Paris-Rocquencourt
*
* Creation: 2016, the 5th of December
* Last modification: Time-stamp: <Jul 18 2017>
*
* Abstract domain to record relations between pair of sites in connected agents.
|