Référence de mycelium

Table des matières

Brouillon, Le rendu HTML de ce document est médiocre. Préferez la version PDF.

mycelium est le langage de description des simulations de la plate-forme Fungus. Ce document présente les différentes commandes du langage.

1. Référence

1.1. XML

Balisemycelium

Description

Ce tag commence un programme Mycelium. Il est obligatoire car sans lui on ne peut pas distinguer un programme Mycelium d'un autre programme XML.


Attributversion

précise le numéro de version du langage Mycelium. Cet attribut prévient les évolutions futures du langages.


Contientmeta, documentation, definition, simulation, visualisation

Aucun des tags de Mycelium n'est obligatoire. En effet, un fichier peut contenir soit un ensemble de définition, soit une simulation, soit les deux. Comme on peut inclure des fichiers dans d'autres cela ne pose pas de problème.


Balisemeta

Description

Grâce à ce tag, le concepteur d'une simulation donne des méta informations sur la simulation. Par exemple, il peut donner un nom à la simulation, le ou les noms des auteurs. Ce tag est directement inspiré du tag du même nom du langage HTML[1].


Attributsname

le nom de la meta information

value

la valeur associée au nom


Contenu dansmycelium.

Exemple de nom pour le tag meta:

author
Avec ce `meta', on précise le nom d'un des auteur de la simulation
name
on donne un nom à la simulation
description
Ce `meta' permet d'insérer une courte description de la simulation.

Ces meta informations sont utilisées par l'interface graphique pour afficher des informations sur une simulation.

Balisedocumentation

Description

Ce tag documente le tag qui le contient. Cette documentation peut être écrite dans trois formats différents : texte ASCII, HTML ou RTF. Pour l'instant, elle est utilisée par le module «Mycelium inspector» de l'interface graphique.


Attributtype

Cet attribut fixe le format d'écriture de la documentation. Ce type peut être :

text/plain
la documentation est écrite en texte ASCII seulement.
text/html
la documentation est écrite en HTML.
text/rtf
la documentation est écrite en RTF.

Contient Ce tag contient du texte ou des tags HTML. Les tags HTML sont ignorés par l'interpréteurs Mycelium.

Contenu dansmycelium, definition, scheme, agentclass, variable, initialisation, behavior, message, visualisation, simulation, agent, parameter, visualize

Tous les tags ne peuvent pas avoir de la documentation. Par exemple, le tag `meta' contient déjà sa propre documentation.

Balisesimulation

Description

Le tag simulation encapsule la construction d'une simulation. La construction se passe en deux étapes:

  • une collecte de paramètres utlisateurs;
  • l'instanciation des agents.

Contientdocumentation, parameter, agent, repeat, if.

Contenu dansmycelium.

Baliseagent

Description

Demande l'instanciation d'un nouvel agent. La création de l'agent peut être ajustée par les tag parameter contenu dans ce tag.


Attributstype

Le nom de la classe Java qui définit l'agent

name

Le nom `Mycelium' de l'agent. Ce nom n'existe que si la classe de l'agent est définit par un programme Mycelium. Tout comme l'attribut type, ce nom définit une classe d'agent.


Contientdocumentation, parameter, agent, repeat, if, visualize

Comme les agents peuvent être hiérarchisés, le tag agent contient les même tags que simulation plus le tag visualize. Si un tag agent contient un autre tag agent, il faut qu'il soit de type AgentGroup.


Contenu dansagent, simulation, iftrue, iffalse, repeat.

Baliseparameter

Description

Ce tag déclare un paramètre pour la simulation, pour un agent ou bien pour une visualisation . Si le paramètre est directement inclu dans un tag simulation, la valeur du paramètre est demandée à l'utilisateur. Dans ce cas, la valeur par défaut du paramètre est donnée dans le corps du tag. La valeur du paramètre est toujours interprétée par Scheme.


Attributskey

Le nom unique de la variable. Les variables étant stockées dans des tables de hachage, on calculera la clé de hachage de la variable avec la valeur de cet attribut.

type

Type Java de la variable.

name

Le nom visible de la variable. Si on doit demander à un utilisateur une valeur pour une variable, on lui montrera ce nom.


Contientdocumentation.

Contenu danssimulation, agent, visualize.

Balisevisualize

Description

Ce tag indique que nous voulons visualiser des données de l'agent qui le contient.

L'agent qui contient ce tag doit être capable d'envoyer les données vers le type de visualisation que l'on souhaite avoir.


Attributtype

Les données seront visualisées dans le type de visualisation donné dans cet attribut.


Contientdocumentation, parameter.

Contenu dansagent.

Baliseif

Description

Définit une instruction conditionnelle. Si la condition passée en attributs est vrai alors on exécute le contenu du tag iftrue sinon on exécute le contenu du tag iffalse.


Attributcond

La condition de l'expréssion. Cet attribut est évalué par l'interprète Scheme.


Contientiftrue, iffalse.

Contenu danssimulation, repeat, iftrue, iffalse.

Baliseiftrue

Description

Le contenu de ce tag est exécuté si la condition du if parent est vrai.


Contientif, repeat, agent.

Contenu dansif.

Baliseiffalse

Description

Le contenu de ce tag est exécuté si la condition du if parent est fausse.


Contientif, repeat, agent.

Contenu dansif.

Baliserepeat

Description

Répète le contenu du ce tag.


Attributtime

Le nombre de fois que l'on répète le contenu. La valeur de cet attribut est évaluée par l'interprète Scheme.


Contientif, agent, repeat

Le tag de contient que des tags de structure et des agents.


Contenu dansagent, repeat.

Balisedefinition

Description

Ce tag encapsule la définition de nouvelles classes, nouvelles fonctions, et de variables pour la simulation.


Contientdocumentation, agentclass, scheme, ressource.

Contenu dansmycelium.

Baliseagentclass

Description

Définit une nouvelle classe d'agent. Cette classe pourra être instanciée à l'intérieur du tag simulation.

Cette nouvelle classe ne créera pas de fichier. Elle n'existera que pendant la simulation et restera en mémoire. Cette nouvelle classe sera propagée à toutes les infrastructures qui font tourner la simulation.


Attributname

Le nom de la classe d'agent que l'on définit. Ce nom sera utilisé par le tag agent.


Contientdocumentation, initialisation, behavior, message, visualisation.

Contenu dansdefinition.

Baliseinitialisation

Description

Le programme contenu dans ce tag initialise un agent.

Dans l'initialisation d'un agent, nous collectons les paramètres initiaux, déclarons les ressources accessibles aux autres agents.


Contientdocumentation, variable.

Contenu dansagentclass.

Balisevariable

Description

Déclare une variable accessible par les AccessibleAgent.

Les agents de la classe AccessibleAgent offrent un mécanisme standard pour partager des informations. Un agent déclare une variable «accessible» et un autre agent peut lire la valeur de cette variable.

Nous pouvons fixer une valeur par défaut dans le corps du tag.


Attributname

le nom de la variable que nous déclarons.


Contientdocumentation.

Contenu dansinitialisation.

Balisebehavior

Description

Ce tag exprime le comportement de l'agent. Le comportement est décrit en langage Scheme. On peut effectuer des calculs, envoyer des messages à d'autres agents.


Contientdocumentation.

Contenu dansagentclass.

Balisemessage

Description

Ce tag donne la possibilité de traiter un type de messages à un agent. Les messages arrivent par les canaux de communications. Le traitement de se type de message est donné dans le corps de tag en langage Scheme.


Attributtype

Le type de message que l'on va traiter.


Contientdocumentation.

Contenu dansagentclass.

Balisevisualisation

Description

Nous fabriquons une visualisation dans ce tag. Actuellement, ce tag n'est pas plus spécifié.


Contientdocumentation.

Contenu dansagentclass.

Balisescheme

Description

Le contenu de ce tag est simplement évaluer par l'interprète Scheme. Nous pouvons y déclarer des variables et des fonctions. Une fois définies, ces variables et ces fonctions sont visibles dans toutes la simulation.


Contientdocumentation.

Contenu dansdefinition.

Baliseinclude

Description

Gràce à ce tag, nous pouvons inclure un fichier dans un programme.


Attributurl

L'URL du fichier à inclure.


Contient

Ce tag peut apparaître n'importe où.


1.2. Scheme

Fonctionid

Description

Cette fonction renvoie l'identifiant de l'agent courant.


Fonctionmget!

Description

Extrait un élément d'une table d'association (map get). Le plus souvent, la table d'association est une table de hachage.


Argumentsmap

la table de hachage

key

la clé qui est associée à la valeur retournée.


Retourne

La valeur qui est associée à la clé dans cette table d'association.


Fonctionmset!

Description

Associe un élément à une clé dans une table d'association (map set). Le plus souvent, la table d'association est une table de hachage.


Argumentsmap

la table de hachage

key

la clé qui est associée à la valeur retournée.


Retourne

La valeur qui est associée à la clé dans cette table d'association.


Fonctionsend-message

Description

envoie un message à un autre agent.


Argumentsto

l'identifiant de l'agent qui recevra le message

message

le message qui est envoyé


Baliseid

Description

Affiche son paramètre et renvient à la ligne.


Attributmessage

Le message à écrire


Fonctionmessage

Description

Fabrique un message.


Argumentsto

l'identifiant de l'agent qui recevra le message

message

le message qui est envoyé


Référence

[1]
Dave Raggett, Arnaud Le Hors, Ian Jacobs (Eds.). HTML 4.01 Specification. , 1999.

Latest News
Warning: main(http://sourceforge.net/export/projnews.php?group_id=57560&limit=5&flat=1&show_summaries=0) [function.main]: failed to open stream: Network is unreachable in /mnt/102/sda/3/5/valvassori/unix/fungus/myceliumref.php3 on line 1067

Warning: main() [function.include]: Failed opening 'http://sourceforge.net/export/projnews.php?group_id=57560&limit=5&flat=1&show_summaries=0' for inclusion (include_path='/mnt/102/sda/3/5/valvassori/include:.:/usr/php4/lib/php') in /mnt/102/sda/3/5/valvassori/unix/fungus/myceliumref.php3 on line 1067


Warning: main(http://sourceforge.net/export/projhtml.php?group_id=57560&mode=full&no_table=1) [function.main]: failed to open stream: Network is unreachable in /mnt/102/sda/3/5/valvassori/unix/fungus/myceliumref.php3 on line 1069

Warning: main() [function.include]: Failed opening 'http://sourceforge.net/export/projhtml.php?group_id=57560&mode=full&no_table=1' for inclusion (include_path='/mnt/102/sda/3/5/valvassori/include:.:/usr/php4/lib/php') in /mnt/102/sda/3/5/valvassori/unix/fungus/myceliumref.php3 on line 1069