package lutin

  1. Overview
  2. Docs
Lutin: modeling stochastic reactive systems

Install

dune-project
 Dependency

Authors

Maintainers

Sources

lutin.2.71.10.tgz
md5=4d07d1263dbc90ab18cbaec55a57dcfe
sha512=2e899aee5e44826827b3626771f7ce01241b1745d48f30b60404cc5cbaa44ac608920e9af3bf171275c429a8b823b3cee7542199b7c4c32919b6bb37e33bf8de

doc/lutin/CoAlgExp/index.html

Module CoAlgExpSource

COMPILATION/EXPANSION : expressions algébriques

------------------------------------------------------------

Représentation des expressions algébriques.

----------------------------------------------------------

C'est la structure utilisée pour toutes les expressions non "trace" (grosso/modo du Lustre !).

La structure est très simple~: on distingue plusieurs cas de feuilles, et un seul cas de noeud (opérateur).

Elle contient, dès la construction, les infos sémantiques associées : type de valeur et "controlabilité".

Rappel~: une alg_exp est contrôlable si et seulement si elle contient au moins une référence à une variable support contrôlable (output ou local).

Sourcetype node =
  1. | AE_true
  2. | AE_false
  3. | AE_const of string
  4. | AE_iconst of string
  5. | AE_rconst of string
  6. | AE_ival of int
  7. | AE_rval of float
  8. | AE_support of CoIdent.t
  9. | AE_pre of CoIdent.t
  10. | AE_alias of CoIdent.t
  11. | AE_call of CoIdent.t * t list
  12. | AE_external_call of CoIdent.t * CkIdentInfo.extern_info * CkTypeEff.profile * t list
Sourceand t = {
  1. ae_type : CkTypeEff.t;
  2. ae_ctrl : bool;
  3. ae_val : node;
}
Sourceval sizeof : t -> int

Batterie de "constructeurs"

Sourceval of_true : t
Sourceval of_false : t
Sourceval of_huge_weight : t
Sourceval of_const : string -> CkTypeEff.t -> t
Sourceval of_iconst : string -> t
Sourceval of_rconst : string -> t
Sourceval of_bval : bool -> t
Sourceval of_ival : int -> t
Sourceval of_rval : float -> t
Sourceval of_support : CoIdent.t -> CkTypeEff.t -> bool -> t

Réference à une variable du support

Sourceval of_pre : CoIdent.t -> CkTypeEff.t -> t

Réference au pre d'une variable du support

Sourceval of_alias : CoIdent.t -> CkTypeEff.t -> bool -> t

Référence à un alias

Sourceval of_call : CoIdent.t -> CkTypeEff.t -> t list -> t

Tout calcul est un appel, prédéfini ou non

Sourceval of_external_call : CoIdent.t -> CkIdentInfo.extern_info -> CkTypeEff.profile -> CkTypeEff.t -> t list -> t
Sourceval of_and : t -> t -> t

On donne quand même le and ...

Sourceval of_big_and : t list -> t
Sourceval of_eq : t -> t -> t
Sourceval of_not : t -> t
Sourceval of_ite : CkTypeEff.t -> t -> t -> t -> t

... et le ite i(il faut donner le type)

Sourceval is_controlable : t -> bool

Infos

Sourceval get_type : t -> CkTypeEff.t
Sourceval dump : t -> unit

Affichage prefixé sur stdout

Sourceval dumpf : out_channel -> t -> unit

Affichage prefixé sur os

Sourceval lus_dumpf : out_channel -> t -> unit

Affichage infixé (autant que possible) sur os n.b. compatible Lustre/Lucky

Sourceval lus_dumps : t -> string

Affichage infixé (autant que possible) dans une string n.b. compatible Lustre/Lucky

OCaml

Innovation. Community. Security.