Référence de mycelium

Transcription

Référence de mycelium
Référence de mycelium
Valvassori Moı̈se
Mon Oct 28 21:53:39 2002
Table des matières
1
Référence
1.1 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
2
6
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
Balise
Description
Attribut
Contient
mycelium
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.
version précise le numéro de version du langage Mycelium. Cet attribut
prévient les évolutions futures du langages.
meta, 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.
Balise
Description
meta
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[RHE99].
Attributs
name
le nom de la meta information
value la valeur associée au nom
Contenu dans mycelium.
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.
Balise
Description
documentation
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.
2
Attribut
type 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
Contenu dans
Balise
Description
Ce tag contient du texte ou des tags HTML. Les tags HTML sont ignorés par
l’interpréteurs Mycelium.
mycelium, 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.
simulation
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.
Contient
Contenu dans
documentation, parameter, agent, repeat, if.
mycelium.
Balise
Description
agent
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.
type 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.
documentation, 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.
agent, simulation, iftrue, iffalse, repeat.
Attributs
Contient
Contenu dans
Balise
Description
parameter
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 S CHEME.
3
Attributs
Contient
Contenu dans
Balise
Description
Attribut
Contient
Contenu dans
Balise
Description
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.
documentation.
simulation, agent, visualize.
key
visualize
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.
type Les données seront visualisées dans le type de visualisation donné dans
cet attribut.
documentation, parameter.
agent.
Contient
Contenu dans
if
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.
cond La condition de l’expréssion. Cet attribut est évalué par l’interprète
S CHEME.
iftrue, iffalse.
simulation, repeat, iftrue, iffalse.
Balise
Description
Contient
Contenu dans
iftrue
Le contenu de ce tag est exécuté si la condition du if parent est vrai.
if, repeat, agent.
if.
Balise
Description
Contient
Contenu dans
iffalse
Le contenu de ce tag est exécuté si la condition du if parent est fausse.
if, repeat, agent.
if.
Balise
Description
Attribut
Contenu dans
repeat
Répète le contenu du ce tag.
time Le nombre de fois que l’on répète le contenu. La valeur de cet attribut
est évaluée par l’interprète S CHEME.
if, agent, repeat
Le tag de contient que des tags de structure et des agents.
agent, repeat.
Balise
definition
Attribut
Contient
4
Description
Contient
Contenu dans
Balise
Description
Attribut
Contient
Contenu dans
Balise
Description
Contient
Contenu dans
Balise
Description
Attribut
Contient
Contenu dans
Balise
Description
Contient
Contenu dans
Balise
Description
Attribut
Contient
Contenu dans
Ce tag encapsule la définition de nouvelles classes, nouvelles fonctions, et de
variables pour la simulation.
documentation, agentclass, scheme, ressource.
mycelium.
agentclass
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.
name Le nom de la classe d’agent que l’on définit. Ce nom sera utilisé par le
tag agent.
documentation,
initialisation,
behavior,
message,
visualisation.
definition.
initialisation
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.
documentation, variable.
agentclass.
variable
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.
name le nom de la variable que nous déclarons.
documentation.
initialisation.
behavior
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.
documentation.
agentclass.
message
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.
type Le type de message que l’on va traiter.
documentation.
agentclass.
5
Balise
Description
Contient
Contenu dans
Balise
Description
Contient
Contenu dans
Balise
Description
Attribut
Contient
visualisation
Nous fabriquons une visualisation dans ce tag. Actuellement, ce tag n’est pas
plus spécifié.
documentation.
agentclass.
scheme
Le contenu de ce tag est simplement évaluer par l’interprète S CHEME. 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.
documentation.
definition.
include
Gràce à ce tag, nous pouvons inclure un fichier dans un programme.
url L’URL du fichier à inclure.
Ce tag peut apparaı̂tre n’importe où.
1.2
Scheme
Fonction
Description
id
Cette fonction renvoie l’identifiant de l’agent courant.
Fonction
Description
mget !
Extrait un élément d’une table d’association (map get). Le plus souvent, la table
d’association est une table de hachage.
map la table de hachage
key la clé qui est associée à la valeur retournée.
La valeur qui est associée à la clé dans cette table d’association.
Arguments
Retourne
Fonction
Description
Arguments
Retourne
Fonction
Description
Arguments
mset !
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.
map la table de hachage
key la clé qui est associée à la valeur retournée.
La valeur qui est associée à la clé dans cette table d’association.
send
envoie un message à un autre agent.
canal
le canal qui fera transiter le message
to
l’identifiant de l’agent qui recevra le message
message le message qui est envoyé
6
Références
[RHE99] Dave Raggett, Arnaud Le Hors, and Ian Jacobs (Eds.). Html 4.01 specification. Technical
report, W3C, december 1999.
7

Documents pareils